【发布时间】:2020-12-03 13:13:09
【问题描述】:
我正在尝试通过文本框中的 ViewModel 绑定到模型的属性。我在 ViewModel 中创建了一个包装器来访问模型的属性。每当我在此包装器的 get 部分中放置一个断点时,它都会触发,但在更改文本框内容后不会执行 set 部分中的断点。代码按照如下教程:https://www.codeproject.com/Articles/1193164/MVVM-Sample-application-with-a-focus-in-property
BaseViewModel 实现了 INPC 接口。我试图尽可能地遵循 MVVM “经验法则”。所以在这种情况下模型中没有INPC实现,视图只能绑定到VM。
我做错了什么?
XAML:
<TextBox Grid.Column="1" VerticalAlignment="Center" Text="{Binding Path=ProgramInfo.Name, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
型号:
public class ProgramInfo
{
private string _name;
private string _description;
public string Name
{
get => _name;
set
{
_name = value;
}
}
public string Description
{
get => _description;
set
{
_description = value;
}
}
}
视图模型:
class ProgramInfoViewModel : BaseViewModel
{
private ProgramInfo _programInfo;
public ProgramInfo ProgramInfo
{
get => _programInfo;
set
{
_programInfo = value;
OnPropertyChanged("ProgramInfo");
}
}
}
代码隐藏:
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = new ProgramInfoViewModel();
}
}
【问题讨论】:
标签: c# wpf xaml mvvm data-binding