[英]Having trouble with 2-way binding using a dependency property and another property in a WPF control
[英]wpf control background 2-way binding only working one way
我有一個在背景畫筆上具有雙向綁定的按鈕,我已經設置了一個依賴項屬性,我也正在使用INotifyPropertyChanged接口。 但是我仍然對雙向綁定有疑問。
如果我更新綁定到按鈕的屬性,則按鈕背景會發生變化,就像我期望的那樣,但是如果我直接更新按鈕背景(“ button.Background = Brushes.Blue”),則該屬性不會更新。
這是按鈕的xaml:
<Button Background="{Binding ElementName=MainWindow,Path=TitleBrush,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"/>
物業:
public Brush TitleBrush
{
get
{
return (Brush)GetValue(TitleBrushProperty);
}
set
{
if (!_graph.TitleBrush.Equals(value))
{
_graph.TitleBrush = value;
SetValue(TitleBrushProperty, value);
NotifyPropertyChanged(nameof(TitleBrush));
}
}
}
public static readonly DependencyProperty TitleBrushProperty =
DependencyProperty.Register(nameof(TitleBrush), typeof(Brush), typeof(MainWindow));
我更改背景顏色的兩種方法:
TitleBrush = Brushes.Red; // This works great
button.Background = Brushes.Red; // This changes the background but doesn't update the property
任何幫助表示贊賞。
TwoWay
用於將值設置為綁定屬性並接受值。 在您的情況下,您將兩種情況都設置為一種方式-設置為控件。 控件沒有發送回屬性值。 TwoWay
確實適用於輸入字段。 如果使用的是后台代碼,則應使用bound屬性。
如BindingMode
枚舉文檔所述:
導致對源屬性或目標屬性的更改以自動更新另一個。 這種類型的綁定適用於可編輯表單或其他完全交互的UI方案。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.