C# 从ViewModel中提取数据

C# 从ViewModel中提取数据,c#,wpf,xaml,C#,Wpf,Xaml,我有一个视图模型: public class CreateRepositoryViewModel : BaseViewModel { private Repository _repository; public Repository Repository { get => _repository; set { _repository = value; OnProperty

我有一个视图模型:

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"/>

但是,数据上下文中的存储库属性返回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();

这是同一个页面实例是的,还需要哪些其他详细信息?正在从页面xaml文件后面的类进行数据上下文调用,该文件包含绑定到视图模型的控件。抱歉,我的错误。DataContext中的存储库属性为null。我将编辑我的问题。为什么你认为它不应该为空?您似乎没有在任何地方赋值<代码>私有存储库\u存储库为null。如果我没有记错,则当控件文本通过绑定更新时,Property Changed方法应填充对象属性。对于“应填充对象属性”,必须有一个项目,即非空的存储库值。
DataContext = new CreateRepositoryViewModel();