绑定:使用 DataTemplate 和绑定可视化未命名布尔值的列表
本文关键字:绑定 布尔值 列表 未命名 使用 DataTemplate 可视化 | 更新日期: 2023-09-27 18:34:09
我有一个ViewModel,其中包含布尔值的ObservableCollection。我有一个控制权。想要将我的布尔值列表可视化为具有两种不同颜色的矩形列表。我不能声明这种约束力。这是我的代码:
<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>
我目前没有方便的
WP7开发环境,所以它未经测试,但我认为以下内容应该有效:
<Rectangle Fill="{Binding BindsDirectlyToSource=True,
Converter=BoolToSelectionBrushConverter}"
HorizontalAlignment="Right"
Margin="0" Width="25"
Height="25" VerticalAlignment="Top"
StrokeThickness="0"/>
你可以使用这个:
<Rectangle Fill="{Binding .,Converter=BoolToSelectionBrushConverter}"... />