wpf mvvm绑定未生效

文章讲述了在WPF中,使用ComboBox绑定对象时遇到的问题,发现由于对象属性没有get和set方法,导致颜色显示不正确。解决方案是为对象的属性添加getter和setter,确保数据绑定的正常工作。
摘要由CSDN通过智能技术生成
<ComboBox Width="120" Height="35" Foreground="Black" FontSize="18" 
          ItemsSource="{Binding CommandSource}"
          SelectedItem="{Binding SelectedCommand}"
          DisplayMemberPath="Name"
          ></ComboBox>
          
public class Command
{
	public Command(ChestMessage message, string name)
	{
	    Message = message;
	    Name = name;
	}
	
	public ChestMessage Message;
	
	public string Name;
}

我是在用Combobox绑定对象,在界面上仅显示对象的固定属性时,发现怎么设置都是白色的未生效,但是直接选择是正确的。
其实是因为属性没有 get 和 set 方法,数据绑定需要使用属性而不是字段,即便它是public的。
改成以下即可:

public class Command
{
	public Command(ChestMessage message, string name)
	{
	    Message = message;
	    Name = name;
	}
	
	public ChestMessage Message { get; set; }
	
	public string Name { get; set; }
}
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
WPF MVVM中,要绑定全局变量,可以通过以下几个步骤实现。 首先,在ViewModel层中,创建一个公共静态变量,这个变量就是我们的全局变量。例如,我们创建一个名为GlobalData的类,并在其中定义一个名为Name的全局变量。 ```C# public class GlobalData { public static string Name { get; set; } } ``` 接下来,在需要使用全局变量的ViewModel中,可以直接通过GlobalData.Name来访问和修改全局变量的值。例如,我们创建一个名为MainViewModel的类,并在其中使用全局变量Name。 ```C# public class MainViewModel : INotifyPropertyChanged { private string _name; public string Name { get { return _name; } set { if (_name != value) { _name = value; GlobalData.Name = _name; // 修改全局变量的值 OnPropertyChanged(nameof(Name)); } } } // 其他ViewModel代码... #region INotifyPropertyChanged implementation public event PropertyChangedEventHandler PropertyChanged; protected virtual void OnPropertyChanged(string propertyName = null) { PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName)); } #endregion } ``` 最后,在需要使用全局变量的View中,可以通过绑定ViewModel中的Name属性,来实现对全局变量的访问。 ```XAML <Label Content="{Binding Name}" /> ``` 通过以上步骤,我们就成功地实现了WPF MVVM中对全局变量的绑定。无论在任何ViewModel中修改全局变量的值,都可以在View中动态显示变化的结果。在这个例子中,我们创建了一个GlobalData类作为全局变量的容器,利用ViewModel与View之间的数据绑定机制,实现了全局变量在整个应用程序中的共享和更新。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

可能是这样吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值