【发布时间】:2017-06-16 13:00:11
【问题描述】:
我正在开发一个需要检查一些可用性属性的小型应用程序。我正在使用用户界面 WPF。如果从组合框中进行选择,我需要更改一些前景色。我有这个数据模板:
<DataTemplate x:Key="userTemplate">
<TextBlock VerticalAlignment="Center">
<Image Source="imgsource.png" Height="25" Width="25" />
<Run Text="{Binding BooleanObjectName}" Foreground="{Binding boolobject, Converter={StaticResource convAvailability}}"/>
</TextBlock>
所以我使用 IValueConverter 来进行这种转换,它将颜色设置为前景:
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
BooleanObject boolobject = (BooleanObject)value;
if (boolobject.IsBoolValueOne) return System.Drawing.Brushes.Green;
else if (boolobject.IsBoolValueTwo) return System.Drawing.Brushes.Red;
else if (boolobject.IsBoolValueThree) return (SolidColorBrush)(new BrushConverter().ConvertFrom("#d3d300"));
else return System.Drawing.Brushes.Black;
}
这有什么问题,因为在我的界面中我总是得到黑色。对此有什么想法吗?
任何帮助将不胜感激。 提前致谢。
【问题讨论】:
-
您需要 WPF 项目中
System.Windows.Media命名空间中的 Brush,System.Drawing命名空间用于 WinForms。 -
你的 Convert 方法被调用了吗?
-
@mm8 我试过调试,我认为它没有被调用
-
@mm8 DataTemplate 在窗口外的 ResourceDictionary 上定义
-
如果你绑定错误,它通常会将错误写入输出窗口而不破坏代码,检查那里是否有任何错误消息