在WPFComboBox中设置默认值我正在使用ComboBoxItemsSource属性绑定来显示列表中的项目到组合框。这是代码:Classes.Charges_selected_tax=newClasses.Charges();publicClasses.ChargesSelectedTax{get{return_selected_tax;}设置{_selected_tax=值;}}列表_taxlist=newList();公共列表TaxList{get{return_taxlist;}设置{_taxlist=值;OnPropertyChanged("税收清单");}}它正确显示了组合框中的项目。TaxList“NoTax”有一个特定的项目,我想在组合框中默认选择它。此项目可以出现在列表中的任何索引处(它不必是列表中的第一个或最后一个项目)。我正在尝试使用以下代码来设置组合框的选定索引属性,但不幸的是它不起作用。TaxList=Classes.Charges.GetChargeList("税");Cmb_Tax.DataContext=this;inti=TaxList.FindIndex(x=>x.ChargeName==tax_name);Cmb_Tax.SelectedIndex=i;方法FindIndex()正确返回“NoTax”,但是当我尝试将其分配给组合的SelectedIndex时,它并没有改变。它保持在-1。UPDATE1privatevoidCmb_Tax_SelectionChanged(objectsender,SelectionChangedEventArgse){MessageBox.Show(SelectedTax.ChargeName);}Update2按照@ElectricRougeClasses.Charges_selected_tax=newClasses.Charges();的建议更新了代码;publicClasses.ChargesSelect{return_selected_tax;}设置{_selected_tax=值;OnPropertyChanged("SelectedTax");}}ObservableCollection_taxlist=newObservableCollection();公共ObservableCollectionTaxList{get{return_taxlist;}set{_tax"list=value;OnProperty);}}publicvoidLoad_Tax(stringtax_name=null,Classes.Chargesselected_tax=null){TaxList=Classes.Charges.GetParticularChargeList("Tax");Cmb_Tax.DataContext=this;//Cmb_Tax.SelectedValue=tax_name;SelectedTax=selected_tax;//inti=TaxList.FindIndex(x=>x.ChargeName==tax_name);//Cmb_Tax.SelectedIndex=i;}知道为什么会这样吗?也请建议任何其他方式在组合框中显示默认值。这是一个工作样例:视图模型:publicMainWindow(){InitializeComponent();varvm=newViewModel();this.DataContext=vm;this.Loaded+=(o,e)=>vm.LoadData();}publicclassViewModel:INotifyPropertyChanged{privateIListtaxList;公共ICollectionViewTaxList{得到;私有集;}publicvoidLoadData(){taxList=Charges.GetChargeList("taxes");TaxList=CollectionViewSource.GetDefaultView(taxList);RaisePropertyChanged("TaxList");TaxList.CurrentChanged+=TaxList_CurrentChanged;varnoTax=taxList.FirstOrDefault(c=>c.ChargeName=="NoTax");TaxList.MoveCurrentTo(noTax);}voidTaxList_CurrentChanged(objectsender,EventArgse){varcurrentCharge=TaxList.CurrentItemasCharges;如果(currentCharge!=null)MessageBox.Show(currentCharge.ChargeName);}公共事件PropertyChangedEventHandlerPropertyChanged;publicvoidRaisePropertyChanged(stringpropertyName){if(PropertyChanged!=null){PropertyChanged(this,newPropertyChanged事件参数(属性名));}}}}视图:List未实现INotifyCollectionChanged以使其成为ObservableCollectionObservableCollection_taxlist=newObservableCollection();公共ObservableCollectionTaxList{get{return_taxlist;}设置{_taxlist=值;OnPropertyChanged("税收清单");}}并尝试设置Mode=TwoWay以上就是C#学习教程的全部内容:在WPFComboBox中设置默认值。《{BindingSelectedTax,UpdateSourceTrigger=PropertyChanged,Mode=TwoWay}》本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
