我很难尝试使用 PRISM 2.0 for WPF 获得一个非常简单的场景。我希望我的应用程序的主要工作区是TabControl
. 每次添加视图时,我都希望它TabItem
在TabControl
.
听起来很容易对吧?
我的 Shell.XAML 中的区域如下所示:
<Controls:TabControl
Name="MainRegion"
cal:RegionManager.RegionName="{x:Static Infrastructure:RegionNames.TabRegion}"
ItemContainerStyle="{StaticResource ShellTabItemStyle}" />
样式:ShellTabItemStyle
看起来像这样:
<Style x:Key="ShellTabItemStyle" TargetType="{x:Type TabItem}">
<Setter Property="Header" Value="{Binding Content.DataContext.HeaderInfo, RelativeSource={RelativeSource Self}}" />
</Style>
这应该将 的 设置Header
为视图TabItem
的HeaderInfo
属性。DataContext
(我从这篇文章中得到了这个想法)DataContext
我的观点是一个非常简单Presenter
的,它有一个HeaderInfo
属性:
public string HeaderInfo = "The Header Text";
我的视图是一个简单的 WPF 用户控件,如下所示:
<StackPanel>
<TextBox Text="Hello World" Name="MyTextBox"></TextBox>
<Image Source="..SomeImage.PNG" Name="MyImage"></Image>
</StackPanel>
到现在为止还挺好。如果我将视图添加到该区域,我会得到一个选项卡控件,并且我会得到一个选项卡,其文本设置为“标题文本”。我的问题是标签上绝对没有内容。我的视图包含一个简单的Image
和一个TextBox
,但它们都没有出现在TabItem
. 如果我打开 Snoop 并环顾四周,则看不到任何图像。
我在这里错过了什么 - 有没有更简单的方法?