gpt4 book ai didi

c# - MVVM 绑定(bind)未显示在 View 中

转载 作者:行者123 更新时间:2023-11-30 19:37:59 24 4
gpt4 key购买 nike

我在后台代码中设置我的数据上下文,并在 XAML 中设置绑定(bind)。调试显示我的数据上下文是从我的模型中填充的,但这并没有反射(reflect)在我的 View 中。

可能是一些简单的事情,但这困扰了我几个小时。

 public partial class MainWindow : Window
{
public MainWindow(MainWindowVM MainVM)
{

this.DataContext = MainVM;
InitializeComponent();


}
}

public class MainWindowVM : INotifyPropertyChanged
{
private ICommand m_ButtonCommand;
public User UserModel = new User();
public DataAccess _DA = new DataAccess();

public MainWindowVM(string email)
{
UserModel = _DA.GetUser(UserModel, email);
//ButtonCommand = new RelayCommand(new Action<object>(ShowMessage));
}
}


public class User : INotifyPropertyChanged
{
private int _ID;
private string _FirstName;
private string _SurName;
private string _Email;
private string _ContactNo;

private List<int> _allocatedLines;

public string FirstName
{
get
{
return _FirstName;
}
set
{
_FirstName = value;
OnPropertyChanged("FirstName");
}
}
}



<Label Content="{Binding Path=FirstName}" HorizontalAlignment="Right" VerticalAlignment="Top" Padding="0,0,150,0"/>

最佳答案

您正在将 MainWindowVM 对象设置为 DataContext,它没有 FirstName 属性。

如果你想绑定(bind)到用户的名字,你需要指定路径 UserModel.FirstName,就像你在代码中访问它一样。

所以你的绑定(bind)应该是这样的:

<Label Content="{Binding Path=UserModel.FirstName}" HorizontalAlignment="Right" VerticalAlignment="Top" Padding="0,0,150,0"/>

此外,您需要将 UserModel 定义为属性而不是字段。

public User UserModel { get; set; } = new User();

关于c# - MVVM 绑定(bind)未显示在 View 中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35878565/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com