c# - 如何在 WPF 中构建类似 VS 的属性面板?

标签 c# wpf visual-studio

我有一个 TreeView 包含来自不同类的不同对象。现在我想构建一个属性面板,它显示不同的内容,具体取决于在 TreeView 中选择的对象/类。构建此类面板的最佳方法是什么?根据选择不同的面板和折叠面板(这对我来说会更容易实现 ObserverPattern 吗?)?或者其他方法?

最佳答案

我会将属性面板(可能只是一个 ContentControl)绑定(bind)到 TreeView 中的 SelectedItem:

<ContentPanel Content="{Binding SelectedItem, ElementName=_treeView}"/>

然后我将使用 DataTemplate 为您拥有的每一类项目显示正确的面板:

<DataTemplate DataType="{x:Type local:SomeClass}">
    <Label>This is displayed for SomeClass</Label>
</DataTemplate>

<DataTemplate DataType="{x:Type local:SomeOtherClass}">
    <Label>This is displayed for SomeOtherClass</Label>
</DataTemplate>

显然,您的 DataTemplate 可以根据需要显示 TreeView 中存在的各种类的复杂程度。

关于c# - 如何在 WPF 中构建类似 VS 的属性面板?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/748027/

相关文章:

c# - 使用 Entity Framework Code First 迁移播种大型查找表数据

c# - 如何获取 mysql 表的一些额外信息描述

wpf - 无法使用 JpegBitmapDecoder 解码 jpeg

c# - 如何维护DataGrid的SelectedItems中的顺序?

c# - 找到 MVC Web App 启动路径的简单方法?

c# - 如何在 Asp.NET Core 2.2 中将用户 ID 的类型从 string 更改为 int?

c# - 不同机器上的 Guid 唯一性

c# - 文本框 DataObjectPastingEventHandler 不工作

visual-studio - Visual Studio 2017-从资源管理器在Visual Studio中打开-权限错误

git - 在本地克隆 VSTS 存储库时,面临 SSL 证书问题