簡體   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