WPF弹出窗口-无法使用DynamicResource

时间:2018-11-29 15:44:13

标签: c# wpf xaml popup xceed

我正在使用DropDownButton中的Xceed Wpf Toolkit。 在该弹出窗口中,我只想显示一个手动填充的ListViewListViewItem只是带有StackPanelImage的垂直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吗?

1 个答案:

答案 0 :(得分:0)

显然,这是Xceed WPF工具包中的错误。我使用的版本为3.2.0的bug。更新为3.4.0可以解决问题。