如何将视图添加到我的MainWindow

时间:2013-02-10 09:13:48

标签: .net xaml mvvm binding

我正在尝试在MainWindow中显示一个视图。

在过去,我已经将我的View(类型为UserControl)传递到我的MainWindow上的TabControl中并将其转换为TabItem,这很有效。

在我的新应用程序中,我没有使用TabControl,遗憾的是,这是我知道如何将视图插入MainWindow的唯一方法。我假设我现在可以使用ContentControl来显示我的视图。

我的问题是,我不知道如何将我的视图绑定到我的ContentControl

到目前为止,我的XAML非常裸露,看起来像是

<Window x:Class="BackUps.Logging.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:viewModels="clr-namespace:BackUps.Logging"
    Title="Logging Results" Height="350" Width="700">

<Grid>
    <Grid.Resources> 
          <ContentControl 
                   Content="{x:Type nameOfViewModel}"
          />


    </Grid.Resources>
</Grid> </Window>

以上不起作用,似乎我的方法是错误的,因为我在技术上很难编码,只允许1个视图显示。但是,仅仅为了我的理解,这很好!

所以,我的两个问题是:

1)我的视图必须是什么类型(Window,Page或UserControl,否则它将与这些中的任何一个一起使用) 2)如何设置ContentControl以绑定到我的视图?

任何建议都将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的视图应为UserControl类型。

在XAML中,您可以使用以下代码:

<Window x:Class="ContentBinding.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525"
        xmlns:views="clr-namespace:ContentBinding"
        >
    <Window.Resources>
        <views:MyView x:Key="myView" />
    </Window.Resources>
    <Grid>
        <ContentControl Content="{StaticResource myView}" />
    </Grid>
</Window>