我首先想说我对绑定非常陌生..我已经在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