[英]Extract Data From ViewModel
我有一个视图模型:
public class CreateRepositoryViewModel : BaseViewModel
{
private Repository _repository;
public Repository Repository
{
get => _repository;
set
{
_repository = value;
OnPropertyChanged();
}
}
}
(BaseViewModel 实现了 IPropertyChanged 接口以简化)
然后我将视图模型绑定到我的页面,如下所示:
DataContext = new CreateRepositoryViewModel();
然后我有多个绑定到 ViewModel 的表单字段:
<TextBox Text="{Binding Path=Repository.LicenceTemplate}" />
<CheckBox IsChecked="{Binding Path=Repository.HasIssues}" VerticalAlignment="Center"/>
在页面内的按钮单击事件模型上,我试图像这样提取数据:
var model = (CreateRepositoryViewModel) DataContext;
但是,数据上下文中的 Repository 属性返回 null。 如何在 xaml 页面后面的 .cs 文件中获取此数据?
ViewModel 中的 Repository 属性需要实例化。
DataContext = new CreateRepositoryViewModel { Repository = new Models.Repository() };
或者,为属性的支持字段分配一个非空的初始值。
public class CreateRepositoryViewModel : BaseViewModel
{
private Repository _repository = new Models.Repository();
...
}
那么这就足够了:
DataContext = new CreateRepositoryViewModel();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.