在Silverlight之前的版本中都不能在XAML代碼中設定斷點以跟蹤調試的,在Silverlight 5 beta版中我們将能夠為Binding資料的XAML代碼設定斷點以跟蹤調試相應的資料綁定過程。
首先我們建立一個Silverlight 5應用程式,然後準備背景資料代碼如下以綁定一個DataGrid控件。
public MainPage()
{
InitializeComponent();
List<CityInformation> cityList=new List<CityInformation>(){
new CityInformation(){ CityName="北京", AddrName="中國北京", TelNum="010"},
new CityInformation(){ CityName="成都", AddrName="中國四川", TelNum="028"},
new CityInformation(){ CityName="東京", AddrName="日本東京", TelNum="110"},
new CityInformation(){ CityName="廣州", AddrName="中國廣東", TelNum="020"},
new CityInformation(){ CityName="巴黎", AddrName="法國巴黎", TelNum="01x"}
};
this.ShowCityList.ItemsSource = cityList;
}
/// <summary>
/// 城市資訊的實體類
/// </summary>
public class CityInformation
private string _AddrName;
private string _CityName;
private string _TelNum;
public string AddrName
get { return _AddrName; }
set { _AddrName = value; }
public string CityName
get { return _CityName; }
set { _CityName = value; }
public string TelNum
get { return _TelNum; }
set { _TelNum = value; }
一、現在我們首先開始設定XAML斷點如下圖所示:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121752555.jpg"></a>
二、運作程式将在設定斷點的Xaml代碼位置停止,并且我們在下方“局部變量”視窗中可以看到目前的"BindingState"(綁定狀态資訊)如下圖:
三、在"FinalSource”中即是當然的資料綁定源類的相關字段資訊如下圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121707864.jpg"></a>
四、在"Binding”-->"[System.Window.Data.Binding]"-->"Path"下的AddrName即是當然列綁定的字段名,如下圖所示:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121647716.jpg"></a>
五、在"[System.Windows.Data.Debugging.UpdateTargetPipeline]"-->"InitialValue"下的值即是目前綁定的字段AddrName的值,如下圖所示:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121522209.jpg"></a>
六、此時我們按F11鍵開始調試XAML中的斷點出現"無可用源"的頁面提示如下圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121504618.jpg"></a>
七、别慌,我們點選"顯示反編譯"以繼續跟蹤調試XAML綁定,繼續關注"局部變量"視窗别轉移,會出現如下界面:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121445741.jpg"></a>
八、繼續按F11鍵,會跟蹤調試到目前行的"TelNum"字段,目前跟蹤值為"010"。
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121423374.jpg"></a>
九、繼續按F11鍵,換到下一行資料的時候,我們回出現以下界面,顯示下一行資料的類資訊如下:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121406323.jpg"></a>
十、繼續按F11鍵,直到所有的資訊都調試完成,顯示出結果如下圖:
<a target="_blank" href="http://blog.51cto.com/attachment/201204/121323579.jpg"></a>
本文轉自程興亮 51CTO部落格,原文連結:http://blog.51cto.com/chengxingliang/823005