簡體   English   中英

wpf控件背景2向綁定只能以一種方式工作

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM