【发布时间】:2017-07-10 09:00:38
【问题描述】:
我在 MainWindow.xaml 中有 Grid。 Grid 填充了我的UserControl(修改为Button)。
在静态类 Globals 中,我有 bool 变量,它在 Button 按下时发生变化。现在我还需要更改此布尔变量更改的 Grid 背景颜色。
问题是,我无法从 MainWindow.xaml.cs 后面的其他代码访问 Grid。
Global.cs:
public static class Globals
{
private static bool _player;
public static bool Player {
get { return _player; }
set {
_player = value;
Debug.WriteLine(value);
}
}
}
我的UserControl:
public partial class tetrisButton : UserControl
{
public tetrisButton()
{
InitializeComponent();
Button.Focusable = false;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
if(!Globals.Player)
{
Button.Content = new cross();
Globals.Player = true;
}
else
{
Button.Content = new circle();
Globals.Player = false;
}
}
}
【问题讨论】:
-
为什么不在你的点击方法中改变背景?
-
你应该考虑遵循 MVVM 模式
-
从 WPF 4.5 开始,您可以轻松bind to static properties。所以你可以简单地为网格的背景设置一个 DataTrigger。
标签: c# wpf xaml user-controls