Tôi đang viết tệp XAML sử dụng DataTrigger để đặt thuộc tính trong ViewModel. Lớp ViewModel được định nghĩa là:Cách sử dụng DataTrigger để đặt thuộc tính được xác định trong ViewModel trong WPF
public class ShellModel : INotifyPropertyChanged
{
public Brush ForegroundBrush
{
get; set;
}
....................
}
Tôi muốn sử dụng DataTrigger trong View.xaml để đặt thuộc tính ForegroundBrush. XAML tôi đã viết là:
<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>
........................
Điều này không biên dịch. Khi tôi thay đổi
<Setter Property="ForegroundBrush" Value="Black" />
để
<Setter Property="ShellModel.ForegroundBrush" Value="Black" />
nó mang lại cho tôi lỗi:
Dependency property field missing ....
Làm thế nào tôi sẽ viết thư này để các DataTrigger có thể thiết lập ForegroundBrush tài sản trong ViewModel?