我正在構建Windows應用商店應用程序,並且我的TextBox綁定了(雙向模式)到我的TaskItem對象的字符串「title」屬性。在雙向綁定中通知目標更改源
我需要做一些處理之後在UI中對這個TextBox進行了更改並傳播回源。
我想知道是否有辦法檢測目標(TextBox的Text屬性)何時發生變化。我知道我可以通過處理TextBox的LostFocus事件來捕獲此事件,但是在更新源文件之前,此事件被觸發之前。
更新:
綁定:
<ScrollViewer
x:Name="itemDetail"
DataContext="{Binding SelectedItem, ElementName=itemListView}">
<TextBox x:Name="itemTitle" Text="{Binding Title, Mode=TwoWay}"/>
</ScrollViewer>
類和屬性:
class TaskItem
{
public string Title { get; set; }
}
我沒有實現INotifyPropertyChanged,因爲我其實並不需要改變傳播從源頭到目標。
我能想到的兩種解決方案:
- 有沒有辦法使用[CallerMemberName]上的屬性的setter方法嗎?如果有的話,我可以確定「標題」是由我自己的代碼還是因爲綁定而改變。
- 消失雙向綁定並在LostFocus事件期間手動更新源。
顯示裝訂和財產。你是否實現了INotifyPropertyChange? –
聽起來好像你需要將變化從目標傳播到源代碼。你說你不需要那個,但你的問題暗示你確實需要它。沒有?我錯過了什麼嗎?爲什麼不實施INotifyPropertyChange並完成它? –
我的不好,我的意思是相反,我沒有實現它,因爲我不需要從源傳播到目標。現在編輯它。 – dcastro