gpt4 book ai didi

wpf - WPF ListBox SelectedItem问题

转载 作者:行者123 更新时间:2023-12-03 10:19:43 26 4
gpt4 key购买 nike

任何人都可以帮忙,浪费了很多时间试图解决这个问题。

我有一个具有以下属性的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中的选定值。

有任何想法吗?提前致谢!

最佳答案

您可以尝试一些操作:

  • 将setter简化为更简单的操作(它应该执行您期望的操作-检查是否选择了列表的其他元素)。
    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/

    26 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com