繁体   English   中英

从 ViewModel 中提取数据

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM