【发布时间】:2011-06-15 19:43:57
【问题描述】:
我正在编写一个 XAML 文件,它使用 DataTrigger 在 ViewModel 中设置一个属性。 ViewModel 类定义为:
public class ShellModel : INotifyPropertyChanged
{
public Brush ForegroundBrush
{
get; set;
}
....................
}
我想在 View.xaml 中使用 DataTrigger 来设置属性 ForegroundBrush。我写的 XAML 是:
<StatusBar Name="statusBar" Grid.Row="3">
<StatusBarItem>
<StatusBarItem.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding HasError}" Value="True">
<Setter Property="ForegroundBrush" Value="Red" />
</DataTrigger>
<DataTrigger Binding="{Binding HasError}" Value="False">
<Setter Property="ForegroundBrush" Value="Black" />
</DataTrigger>
</Style.Triggers>
</Style>
</StatusBarItem.Style>
<TextBlock Name="statusBarMessage" Foreground="{Binding ForegroundBrush}" Text="{Binding StatusMessage}"></TextBlock>
</StatusBarItem>
........................
这不会编译。当我改变了
<Setter Property="ForegroundBrush" Value="Black" />
到
<Setter Property="ShellModel.ForegroundBrush" Value="Black" />
它给了我错误:
依赖属性字段缺失 ....
我应该如何编写,以便 DataTrigger 可以在 ViewModel 中设置属性 ForegroundBrush?
【问题讨论】:
标签: wpf datatrigger