C# 如何在WPF中动态交换窗口内容

C# 如何在WPF中动态交换窗口内容,c#,.net,wpf,wpf-controls,C#,.net,Wpf,Wpf Controls,我需要关于开发WPF UI的帮助。我是WPF的新手。到目前为止,我阅读了许多教程,并决定遵循MVVM设计模式 我想要完成的可能看起来很简单: 在窗口的开头有一个组合框。它被嵌入到一个有两行的网格中。现在,我希望第二行的内容取决于组合框的选择。第二行大约占页面的四分之三。组合框没有提供太多的选择。最好我想交换的不仅仅是一个标签,例如,而是窗口这一部分的全部内容 希望你们能明白 此说明可能有助于: ______________ |Source: File | |--------------| |

我需要关于开发WPF UI的帮助。我是WPF的新手。到目前为止,我阅读了许多教程,并决定遵循MVVM设计模式

我想要完成的可能看起来很简单: 在窗口的开头有一个组合框。它被嵌入到一个有两行的网格中。现在,我希望第二行的内容取决于组合框的选择。第二行大约占页面的四分之三。组合框没有提供太多的选择。最好我想交换的不仅仅是一个标签,例如,而是窗口这一部分的全部内容

希望你们能明白

此说明可能有助于:

 ______________
|Source: File  |
|--------------|
|      _______ |
|File:|C:\... ||
|     |_______||
|              |
|______________|


 __________________
|Source: Database  |
|------------------|
|      _________   |
|Host:|localhost|  |
|     |_________|  |
|      _________   |               
|Port:|1521|    |  |
|     |_________|  |
|__________________|
也许可以为每个子页面定义一个网格,并根据组合框的选择动态地交换它们

提前感谢您的时间和努力
托比我想到的第一件事是:

如果在XAML中填充combobox,请将相应的控件放在combobox项的标记上。然后只需将第二行的内容绑定到SelectedItem.Tag:

<ContentControl Grid.Row="1" Content="{Binding ElementName=comboBox1, Path=SelectedItem.Tag}" />


非常感谢您快速而有用的回答!不管怎样,出于好奇:如果我想从代码隐藏填充ComboBox,是否还有一种方法可以做同样的事情?有几种方法可以实现这一点。您可以将标记属性设置为在XAML中配置的某些元素,或者使用代码隐藏显示适当的控件,或者编写一个ValueConverter,它将根据组合框选择设置控件可见性,或者使用DataTrigger显示相应的控件。