gpt4 book ai didi

wpf - 将两个 UserControl 绑定(bind)到同一个 DataContext 或 ViewModel?

转载 作者:行者123 更新时间:2023-12-02 00:42:29 24 4
gpt4 key购买 nike

我正在开发一个 UserControl,它由一个 Chart 面板和另一个操作一些图表数据的区域组成,即图表控件(改变图表的颜色、启用或禁用图表上的内容等)。

我使用 ViewModel 来管理图表及其数据,但我在想也许在图表控制区域之外创建一个单独的用户控件会更好,以防止我的 xaml 变得越来越大分离出组件。

如果我这样做,由于控件需要操作来自 Chart ViewModel 的数据,我应该如何处理它?我可以将 Chart 控件的 DataContext 绑定(bind)到 ChartDataContext 吗,所以我只有一个 View 模型?我是否应该为图表控件提供自己的 View 模型,然后让图表面板和图表控件 View 模型以某种方式进行对话?

或者只是忘记一个单独的用户控件并将所有内容都塞进一个大的 View 模型/xaml 控件中?

在这种情况下,人们会推荐什么?

最佳答案

您完全可以将两个 UserControl 绑定(bind)到同一个 ViewModel。您可以将每个控件的 DataContext 绑定(bind)到同一个对象实例,或者我想您可以将一个控件的 DataContext 绑定(bind)到 DataContext另一个并将其绑定(bind)到您的 ViewModel

如果您从 View 和 View 模型的工作实现开始,并且您觉得 XAML 变得笨拙,我同意您应该将 XAML 分成多个 View 。没有理由意味着您需要分离您的 ViewModel 实现,直到您觉得它变得不连贯或太大。现在将其分开只会增加复杂性,因为您建议他们无论如何都需要沟通。

您可能会考虑先在图表控件区域之外简单地创建一个 UserControl,然后将该控件嵌入到您现有的控件中。这样您就不必修改任何使用您的图表控件的屏幕。

关于wpf - 将两个 UserControl 绑定(bind)到同一个 DataContext 或 ViewModel?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2163520/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com