WPF combox數據綁定的問題


WPF中的Combox綁定表面看起來似乎比winform重的winform綁定更復雜

但是,不容忽視的是wpf中的combox的數據對象綁定綁定的是對象,比如用Messagebox.show(combox.selecteditem),出現的內容是整個對象,可以通過combox.selecteditem as object  來還原成你的對象進行操作。這是一個亮點,注:datagrid也一樣

但是,不管多么簡單的問題,到了我這里總會出現這樣那樣的問題。

今天我就遇到一個問題,糾結了好幾個小時,

情況說明:我要對combox的itemsource進行數據綁定,然后還要根據當前頁面上的對象對selectedvale進行綁定,具體代碼如下

 <ComboBox Name="cmbunitkind" itemssource={bing} DisplayMemberPath="Name" SelectedValuePath="Code"  Width="100px"   SelectedValue="{Binding  Path=Model.Unitkind,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" />

現在看沒什么問題,但是程序運行起來后發現,combox有下拉列表數據,而無法即時更新,也就是我頁面的當前對象改變了,無法更新到combox的選項,或者combox的選項改變了,無法更新到對象

這個問題,也讓我研究了半天,哎 

最后發現,如果將itemssource={bing}去掉就可以了

              然后再后台CS代碼中不要用DataContext了,而用  this.cmbunitkind.ItemsSource = _unitkindlist;

總結:wpf中DataContext的用法:1 在前台頁面上的寫法itemssource={bing}

                                              2 在后台CS代碼中用combox.DataContext =list

                                           通常需要即時更新的時候使用

          wpf中的itemsource的用法:后台CS中用 combox.ItemsSource =list;

                                               通常更容易掌握數據顯示的樣式


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM