我有一个来自实体框架模型的层次结构TreeView
。
我的节点都有一个属性“COID”,结帐ID。我想显示3种不同颜色的矩形,具体取决于COID属性的值。
<HierarchicalDataTemplate ItemsSource="{Binding tblLines}">
<StackPanel Orientation="Horizontal" Margin="2">
<Image Height="15" Margin="4" x:Name="imgTreeProject" Source="/DES STUDIO PR;component/Resources/Images/folder_closed.png"/>
<TextBlock Text="{Binding Name}" Margin ="8" TextAlignment="Center" VerticalAlignment="Center" HorizontalAlignment="Center"/>
<Rectangle Name="X" Width="10" Height="10" Fill="Green"/>
</StackPanel>
这是我想要实现的转换器:
public class CheckoutConverter : IValueConverter
{
public object Convert(object entity, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
var Baseentity = entity as TblBase;
if (Baseentity.COID == MainWindow.LocalUser.ID)
{
return Colors.Green;
}
else if (Baseentity.COID == 0)
{
return Colors.Transparent;
}
else if (Baseentity.COID != 0)
{
return Colors.Black;
}
else
return Colors.Purple;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
答案 0 :(得分:2)
将Fill
的{{1}}属性绑定到您的数据对象
Rectangle
...并从转换器返回<Rectangle Name="X" Width="10" Height="10">
<Rectangle.Fill>
<Binding Path=".">
<Binding.Converter>
<local:CheckoutConverter />
</Binding.Converter>
</Binding>
</Rectangle.Fill>
</Rectangle>
Brush
的插入内容:
Color