我正在使用DropDownButton中的Xceed Wpf Toolkit。
在该弹出窗口中,我只想显示一个手动填充的ListView
。
ListViewItem
只是带有StackPanel
和Image
的垂直TextBlock
。
<xceed:DropDownButton Grid.Column="4" x:Name="BurgerButton">
<xceed:DropDownButton.Content>
<Image Source="/Resources/BurgerMenu_128x128.png"/>
</xceed:DropDownButton.Content>
<xceed:DropDownButton.DropDownContent>
<ListView>
<ListViewItem cal:Message.Attach="[Event MouseUp] = [Action NewProject]">
<StackPanel Orientation="Vertical">
<Image Source="/Resources/FileNew_32x32.png"/>
<TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/>
</StackPanel>
</ListViewItem>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="DataContext" Value="{Binding DataContext, ElementName=BurgerButton}"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
</xceed:DropDownButton.DropDownContent>
</xceed:DropDownButton>
当Action
的{{1}}事件触发时,我正在使用Caliburn.Micro触发MouseUp
。这很好。问题ListViewItem
尽管存在资源,但它只是空的。 <TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/>
语法在项目中的其他任何地方都可以正常工作。它只是在DynamicResource
内部不起作用。我知道弹出窗口与主应用程序不在同一个VisualTree中-因此Popup
共享要困难一些。
这与DataContext
无关,而与DataContext
中定义的ResourceDictionary
有关。我的App.xaml
看起来像这样:
App.xaml
任何人都知道为什么在WPF弹出窗口中没有显示DynamicResource吗?
答案 0 :(得分:0)
显然,这是Xceed WPF工具包中的错误。我使用的版本为3.2.0
的bug。更新为3.4.0
可以解决问题。