2012年3月23日 星期五

[Silverlight] CombBox技巧演示(方法三):解決ComboBox在DataGrid內,如何設定預設值於對應CellTemplate中的TextBlock

我在[Silverlight] CombBox技巧演示(方法一)的文章中,只教授了如何在ComboBox選擇了項目後,刷新對應的TextBlock,並沒有提供方法去解決ComboBox與對應TextBlock的預設值問題。因此,我把程序碼稍為修改一下,於介面開始載入時,設定預設值於ComboBox。然後運用DataGrid的LoadingRow事件,去刷新DataGrid每行列中ComboBox對應的TextBlock。


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。

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 版本。