C# 所选项目的WPF触发器
我使用的是MVVM轻型框架。在我的一个页面上,我有一个列表框,其中有一个绑定列表和一个绑定的选定项。我有一个样式可以突出显示该列表框中的选定项。但是,在我实际单击该项之前,该项不会高亮显示(当它刚刚绑定时,它不会高亮显示该项) XAML: 正在发送的消息并不重要,它在另一个页面上执行一些其他工作。SelectedDefault属性是本例中唯一使用的内容 有人知道我需要做什么才能让它工作吗?看起来绑定(以及您的视图)不知道所选项目属性已更改 在SelectedDefault的setter中,需要使用INotifyPropertyChanged接口创建某种通知 我只是快速浏览了一下MVVM light框架,根据示例判断,如果您的viewmodel继承自ViewModelBase,请使用字段备份属性并调用RaisePropertyChanged:C# 所选项目的WPF触发器,c#,wpf,xaml,mvvm,listbox,C#,Wpf,Xaml,Mvvm,Listbox,我使用的是MVVM轻型框架。在我的一个页面上,我有一个列表框,其中有一个绑定列表和一个绑定的选定项。我有一个样式可以突出显示该列表框中的选定项。但是,在我实际单击该项之前,该项不会高亮显示(当它刚刚绑定时,它不会高亮显示该项) XAML: 正在发送的消息并不重要,它在另一个页面上执行一些其他工作。SelectedDefault属性是本例中唯一使用的内容 有人知道我需要做什么才能让它工作吗?看起来绑定(以及您的视图)不知道所选项目属性已更改 在SelectedDefault的setter中,需要使
private QuotePetSummaryItem _selectedDefault;
public QuotePetSummaryItem SelectedDefault
{
get { return _selectedDefault; }
set
{
_selectedDefault = value;
RaisePropertyChanged("SelectedDefault");
}
}
首先,您必须将selecteditem的绑定模式设置为双向
<ListBox ItemsSource="{Binding DefaultList}" SelectedItem="{Binding SelectedDefault, Mode=TwoWay}" Background="{x:Null}" ItemContainerStyle="{StaticResource ListboxItemStyle}">
第二,在viewmodel中,必须实现INotifyPropertyChanged并正确提升它。看看岩石计数器的答案
如果所有这些都不起作用,请检查vs输出窗口中的绑定错误。在行
SelectedDefault=DefaultList.First()上放置一个断点代码>。它被击中了吗?请为SelectedDefault
发布代码。
private QuotePetSummaryItem _selectedDefault;
public QuotePetSummaryItem SelectedDefault
{
get { return _selectedDefault; }
set
{
_selectedDefault = value;
RaisePropertyChanged("SelectedDefault");
}
}
<ListBox ItemsSource="{Binding DefaultList}" SelectedItem="{Binding SelectedDefault, Mode=TwoWay}" Background="{x:Null}" ItemContainerStyle="{StaticResource ListboxItemStyle}">