我需要在后面的 xaml.cs 代码中初始化对象,然后在绑定(bind)的 View 模型中使用该对象。但是当我这样做时,对象会正确初始化,但 viewmodel 的行为就像它仍然为空一样。
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; }
和
DataPlotModel
在 viewmodel 中始终为空,除非我在 viewmodel 中严格初始化它。
最佳答案
您需要设置 DataPlotModel
某处 View 模型的属性:
MainWindowViewModel viewModel;
public MainWindow()
{
viewModel = new MainWindowViewModel();
DataContext = viewModel;
InitializeComponent();
viewModel.DataPlotModel = new PlotModel(); //<-- Set the view model property
}
您应该设置 View 模型属性,而不是直接设置控件的属性,因为这会破坏绑定(bind)。
关于c# - WPF 在代码后面初始化对象并在 View 模型中使用该对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45588224/