我在[Silverlight] CombBox技巧演示(方法一)的文章中,只教授了如何在ComboBox選擇了項目後,刷新對應的TextBlock,並沒有提供方法去解決ComboBox與對應TextBlock的預設值問題。因此,我把程序碼稍為修改一下,於介面開始載入時,設定預設值於ComboBox。然後運用DataGrid的LoadingRow事件,去刷新DataGrid每行列中ComboBox對應的TextBlock。
2012年3月23日 星期五
2012年3月18日 星期日
[Silverlight] CombBox技巧演示(方法二):解決在DataGrid內的CellEditingTemplate中選了ComboBox值後,刷新對應CellTemplate內TextBlock的值
在上一篇的文章中,我用了DataGrid的CellEditEnd事件來引發刷新CellTemplate內TextBlock的值。其實亦可用另一個方法解決,就是在自定的類別中透過 INotifyPropertyChanged 介面,去刷新TextBlock。
記得我在初學Silverlight的時候了解到要使用System.ComponentModel的命名空間實作 INotifyPropertyChanged 介面於自定的類別,並把它繫結到DataGrid。以下程式碼就是示列,在DataGrid1所繫結的Diagnosis 類別實施 INotifyPropertyChanged 介面,並且Diagnosis物件中的Patient屬性會繫結相關CellEditingTemplate內的ComboBox。因此,可在Patient屬性內加上程式碼去轉換出對應的CellTemplate中TextBlock的值。由於轉換過程中要以ComboBox的資料項目來源作比較,所以我亦在Diagnosis物件中以ObservableCollection<Patient> patientList這集合來儲存ComboBox的數據源。然後轉換出來的值儲存於Diagnosis物件中的patientName屬性,並繫結到對應CellTemplate內的TextBlock。
記得我在初學Silverlight的時候了解到要使用System.ComponentModel的命名空間實作 INotifyPropertyChanged 介面於自定的類別,並把它繫結到DataGrid。以下程式碼就是示列,在DataGrid1所繫結的Diagnosis 類別實施 INotifyPropertyChanged 介面,並且Diagnosis物件中的Patient屬性會繫結相關CellEditingTemplate內的ComboBox。因此,可在Patient屬性內加上程式碼去轉換出對應的CellTemplate中TextBlock的值。由於轉換過程中要以ComboBox的資料項目來源作比較,所以我亦在Diagnosis物件中以ObservableCollection<Patient> patientList這集合來儲存ComboBox的數據源。然後轉換出來的值儲存於Diagnosis物件中的patientName屬性,並繫結到對應CellTemplate內的TextBlock。
2012年3月17日 星期六
[Silverlight] CombBox技巧演示(方法一):如何在DataGrid內的CellEditingTemplate中選了ComboBox的值後,刷新CellTemplate內TextBlock的值
最近,我轉到一間在香港比較大型的軟件公司工作。基於新公司客戶的要求,在工作中是需要我用到微軟Silverlight。所以我嘗試通過互聯網查找一些關於Silverlight的學習資源。但我發現很少香港的公司在他們的業務應用程式中使用 Silverlight。
因此,我去了中央圖書館借了些書,並且到外國的相關技術網站獲取Silverlight一些基本的知識。今天我開始總結一些編寫silverlight時所遇到的程式問題,根據我個人對 Silverlight 研究的經驗,提出一些方法給大家參考。
問題根源: 在一些Silverlight的討論區中,有些人曾詢問在DataGrid內以CellTemplate 和CellEditingTemplate方式加入ComboBox時,遇到了以下問題:
(當我在CellEditingTemplate內的下拉式清單選了的值後,不知道如何才能刷新所對應的CellTempate內 TextBlock值。)
這問題我亦遇到,因此我寫了一個ComboBox在 CellTemplate 和 CellEditingTemplate 之間的示例。下面的代碼示例將向您展示如何解決它。我用的開發環境是 Visual Studio 2010 和 Silverlight 4 版本。
訂閱:
文章 (Atom)