【发布时间】:2025-12-04 07:45:01
【问题描述】:
我有一个自定义用户控件 (ChartControl),我在我的 WPF 应用程序 (MainApp) 中使用它并按如下方式呈现:
<ContentControl Grid.Row="1" Content="{Binding ChartControl, Mode=OneWay}" />
在启动MainApp 时,将按给定顺序执行以下操作:
主应用视图 MainApp 视图模型 ChartControl 视图模型 图表控件视图
我在 MainApp ViewModel 的构造函数中实例化了 ChartControl ViewModel。问题是在实例化ChartControl ViewModel 之后,我还需要从MainApp 中调用ChartControl 的方法。
我遇到的问题是,在我调用该方法作为其视图模型的一部分之前,我需要渲染 ChartControl 视图(执行其 InitializeComponent)。
我认为一种解决方案是在视图模型完全实例化和设置时通知视图模型。这是一个可行的解决方案吗?如果是,我该怎么做?
总之,在调用匹配视图模型的方法之前,我需要完全设置视图。我遇到的问题是,在这种情况下,首先实例化视图模型,然后才渲染视图。
有什么想法吗?
谢谢
【问题讨论】:
-
那个方法是什么,为什么要在
InitializeComponent执行后调用?你到底想做什么?对我来说,这听起来像是 xy problem。 -
它将数据系列呈现为图表表面上的图表,我遇到了图表未显示的问题。我怀疑这是因为视图模型在视图初始化之前构造了图表并可以渲染它。
-
@SriramSakthivel,正如您正确暗示的那样,这并没有让我找到解决问题的方法。我的问题是,当我从托管 wpf 应用程序的视图模型构造函数呈现系列时,用户控件中的自定义图表库不会呈现图表系列。详情请见*.com/questions/29805060/…。
标签: c# wpf mvvm view viewmodel