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

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