public List<string> AllUnits { get { return _AllUnits; } set {

动态 未结 0 53
小小草
小小草 LV1 2023年9月23日 23:40 发表
不可以,因为你在AllUnits属性的setter方法中没有使用合并后的集合。你需要将合并后的集合赋值给_AllUnits字段,然后再触发PropertyChanged事件。 以下是一个修正过的代码示例: ```csharp public class MyViewModel : INotifyPropertyChanged { private MaterialStandard _materialStandard; private List _allUnits; public MyViewModel(MaterialStandard materialStandard) { _materialStandard = materialStandard; var units = new List { _materialStandard.SZUnit, _materialStandard.BZUnit }; _allUnits = units.Where(u => !string.IsNullOrEmpty(u)).Distinct().ToList(); } public List AllUnits { get { return _allUnits; } set { _allUnits = value; OnPropertyChanged(nameof(AllUnits)); } } // Other properties and methods public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } } ``` 在上面的代码中,我们在ViewModel的构造函数中将SZUnit和BZUnit合并成一个集合,并使用LINQ查询过滤掉空值和重复项。然后,我们将结果存储在_allUnits字段中,并将其公开为AllUnits属性。 当你需要在UI中显示ComboBox时,你可以将AllUnits属性绑定到ComboBox的ItemsSource属性上: ```xml ``` 在上面的代码中,我们将AllUnits属性绑定到ComboBox的ItemsSource属性上,并将SelectedUnit属性绑定到ComboBox的SelectedItem属性上。 希望这些提示能够帮助你解决问题。
收藏(0)  分享
相关标签: 智能问答
问题没解决?让AI助手帮你作答 AI助手
0个回复
  • 消灭零回复