我有一个ViewModel,它包含一个OboleableCollection布尔值。我有一个控制权。 想要将我的布尔列表可视化为具有两种不同颜色的矩形列表。 我不能宣布这样的约束。这是我的代码:
<UserControl.Resources>
<DataTemplate x:Key="DataTemplateName">
<Grid Margin="12,0,0,0">
<Rectangle Fill="{Binding ***PROBLEM***
, Converter={StaticResource BoolToSelectionBrushConverter}"}
HorizontalAlignment="Right"
Margin="0" Width="25"
Height="25" VerticalAlignment="Top"
StrokeThickness="0"/>
</Grid>
</DataTemplate>
</UserControl.Resources>
<Grid x:Name="LayoutRoot">
<ItemsControl
ItemsSource="{Binding Statuses}"
ItemTemplate="{StaticResource DataTemplateName}"
Margin="0,0,8,0">
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Horizontal" />
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>
</ItemsControl>
我可以在不创建包装器的情况下实现它吗?
public class Value
{
public bool IsOk{get;set;}
}
并绑定到命名属性:
<Grid Margin="12,0,0,0">
<Rectangle Fill="{Binding IsOk
, Converter={StaticResource BoolToSelectionBrushConverter}}"
HorizontalAlignment="Right"
Margin="0" Width="25"
Height="25" VerticalAlignment="Top"
StrokeThickness="0"/>
</Grid>
答案 0 :(得分:3)
我目前没有方便的WP7开发环境,所以它未经测试,但我认为以下内容应该有效:
<Rectangle Fill="{Binding BindsDirectlyToSource=True,
Converter=BoolToSelectionBrushConverter}"
HorizontalAlignment="Right"
Margin="0" Width="25"
Height="25" VerticalAlignment="Top"
StrokeThickness="0"/>
答案 1 :(得分:2)
您可以使用:
<Rectangle Fill="{Binding .,Converter=BoolToSelectionBrushConverter}"... />