gpt4 book ai didi

c# - 在 MVVM 中创建 WPF 动态面板

转载 作者:行者123 更新时间:2023-12-03 10:59:51 31 4
gpt4 key购买 nike

我正在为对象实例层次结构创建一个编辑器。编辑器有一个面板,其子控件根据对象的字段而有所不同。因此,对于具有整数字段的类型 A,它将具有微调器控件;对于具有字符串字段的类型 B,它将具有一个 TextBox。等等。

问题是,你如何在 MVVM 中实现这一点?

最佳答案

您可以使用 ContentControl在您的 XAML 代码中并绑定(bind)到某种类型(事件系统类型 - 您想要的):

<ContentControl Content="{Binding YourProperty}"/>

(YourProperty 是附加到 View 的 ViewModel 的属性)

那么你必须创建渲染 View 的 DataTemplate:
<DataTemplate DataType="{x:Type system:int}">
<views:MyWindow/>
</DataTemplate>

系统和 View 是您的 xaml 代码中的命名空间。在此示例中,我使用 system:int 类型,但它可以是您的自定义类型。 MyWindowUserControl对象 - 所以你基本上创建另一个 WPF UserControl文件中的解决方案。

它是这样工作的。 ContentControl得到它的 Content并检查它的类型。它寻找 DataTemplate可以将此类型转换为某些 View (可以是文本、文本框等),可以呈现为 Content .

最好的祝福

关于c# - 在 MVVM 中创建 WPF 动态面板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17615098/

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