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