0
如果SelectedDate为null,我有一个DatePicker,我想将BorderBrush设置为SolidColorBrush(Colors.Red)。如果一个日期已经填入,我想只有默认的BorderBrush。我仍然希望能够在Blend中设置默认的BorderBrush,所以我不想硬编码DatePicker的默认边框刷。所以基本上:Silverlight 3与ValueConverter的DataBinding:有条件地使用属性的默认值
XAML:
<controls:DatePicker BorderBrush="{Binding SelectedDate, RelativeSource={RelativeSource Self}, Converter={StaticResource BrushConverter}, Mode=OneWay}"/>
C#:
public class BrushConverter : IValueConverter {
public object Convert(object value, Type targetType, object parameter, CultureInfo culture) {
return value == null ?
new SolidColorBrush(Colors.Red) : /* when value != null have the bound property use it's default value */
}
这可能吗?
的Silverlight版本?这种机制已经存在用于指示验证错误。 – AnthonyWJones 2010-06-10 12:11:42