簡體   English   中英

WPF在后面的代碼中初始化對象並在viewmodel中使用該對象

[英]WPF initialize object in code behind and use that object in viewmodel

我需要在xaml.cs代碼后面初始化對象,然后在綁定的viewmodel中使用該對象。 但是,當我這樣做時,對象會正確初始化,但是viewmodel的行為就像它仍然為null。

MainWindow.xaml

<oxys:PlotView x:Name="dataPlot" Model="{Binding DataPlotModel}" Margin="10,10,185,39"/>

MainWindow.xaml.cs

MainWindowViewModel viewModel;

public MainWindow()
{
    viewModel = new MainWindowViewModel();
    DataContext = viewModel;

    InitializeComponent();

    PlotModel DataPlotModel = new PlotModel();
    dataPlot.Model = DataPlotModel;
}

MainWindowViewModel.cs

public PlotModel DataPlotModel { get; set; }

除非我在viewmodel中嚴格初始化它,否則DataPlotModel中的DataPlotModel始終為null。

您需要在某處設置視圖模型的DataPlotModel屬性:

MainWindowViewModel viewModel;

public MainWindow()
{
    viewModel = new MainWindowViewModel();
    DataContext = viewModel;

    InitializeComponent();

    viewModel.DataPlotModel = new PlotModel(); //<-- Set the view model property
}

您應該設置視圖模型屬性,而不是直接設置控件的屬性,因為這會破壞綁定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM