任何人都可以帮忙,浪费了很多时间试图解决这个问题。
我有一个具有以下属性的ViewModel
public ObservableCollection<ListItem> OpcoList { get; set; }
public ListItem SelectedOpco {
get {
return _selectedOpco;
}
set {
if (_selectedOpco != null && _selectedOpco.Equals(value)) {
return;
}
var oldValue = _selectedOpco;
_selectedOpco = value;
RaisePropertyChanged("SelectedOpco");
}
在我的XAML中
<ListBox Name="listOpco" ItemsSource="{Binding OpcoList}"
SelectionMode="Single" SelectedItem="{Binding Mode=TwoWay, Path=SelectedOpco}">
但是,每当我在VM中为SelectedOpco设置一些值时,它都不会显示为ListBox中的选定值。
有任何想法吗?提前致谢!
最佳答案
您可以尝试一些操作:
set {
if(_selectedOpco != value) {
_selectedOpco = value;
RaisePropertyChanged("SelectedOpco");
}
}
RaisePropertyChanged("SelectedOpco");
行上放置一个断点,以查看执行是否在那里。如果是,请检查该类是否真的标记为INotifyPropertyChanged
。if(!(this is INotifyPropertyChanged))
throw new Exception("Not INotifyPropertyChanged");
SelectedOpco = OpcoList.FirstOrDefault(); // LastOrDefault
祝你好运!
关于wpf - WPF ListBox SelectedItem问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11775973/