我首先想說我對綁定非常陌生..我已經在WPF中做了一些事情,但是我從來沒有使用綁定,因爲概念有點太難了瞭解我的權利的蝙蝠。即使是我現在正在做的事情,也是我從一篇我並沒有完全理解的教程中拯救出來的東西。當資源發生變化時,靜態綁定不會更新
在我的應用程序中,我有一個具有靜態屬性的靜態類,並且有一個靜態方法來改變這些靜態屬性。
例子:
public static class AppStyle
{
public static SolidColorBrush property = Brushes.Red;
public static void ChangeTheme()
{
property = Brushes.Blue;
}
}
的XAML裏面我有有它的背景綁定到該值的控制。我甚至正確地聲明瞭命名空間。
...
xmlns:style="clr-namespace:CorrectNamespace;assembly=RightAssembly"
...
<TextBox x:Name="TXT_PN"
Background="{Binding Source={x:Static style:AppStyle.property}}"
TextChanged="TXT_PN_TextChanged"
Text="Text"/>
當應用程序加載它會加載正確的設置(紅色),但是當事情發生變化,ChangeTheme()被調用時,靜態類將獲得新的價值,但文本框的背景不會改變。 我在這裏做錯了什麼?正如我所說,我對此很陌生,我會感激外行人員的解決方案。
謝謝!
謝謝你的深入答覆。讓我補充一點,我確實使用{get; set;}來表示我的屬性,在我的問題中,我錯過了它。我還有1個關於你的答案的問題;我的課程是在另一個項目中的dll中,我是在那裏編寫第一個代碼塊還是在我正在使用的xaml的.cs文件中編寫代碼塊? – DethoRhyne
這一切都在類AppStyle中,請參閱我的編輯。 – Clemens
非常感謝。我已經應用了您的代碼,現在一切正在運行。我會確保記住這一點。再次謝謝你! :) – DethoRhyne