Silverlight的Textbox只有在焦點失去的時候才能取到Text值,這就使得在某些操作下容易導致值在保存之前丟失的問題。例如:DataGrid中使用了自帶的Group,使用者編輯其中的Textbox值然後保持焦點在Textbox中不丟失,折疊DataGrid中的group分組,這時保存資料(到資料庫或是SharePoint List),原先綁定到資料來源的Textbox中的值並沒有被改變。一個比較有效的解決方法就是給這些Textbox添加TextChanged事件,然後加入下面的代碼:
private void TextBox_TextChanged(object sender, TextChangedEventArgs e)
{
    BindingExpression expresson = (sender as TextBox).GetBindingExpression(TextBox.TextProperty);
    expresson.UpdateSource();
}
這樣,每當Textbox中的內容發生變化時都會觸發該事件,從而通知其綁定的資料來源內容做出修改。
創作者介紹
創作者 shadow 的頭像
shadow

資訊園

shadow 發表在 痞客邦 留言(0) 人氣()