Я использую 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>
. Я использую Caliburn.Micro для запуска Action
, когда событие MouseUp
ListViewItem
пожары.Это отлично работает.Проблема в том, что <TextBlock Text="{DynamicResource ProjectSelectorView_NewProject}"/>
Он просто пуст, несмотря на наличие ресурса.В других местах проекта синтаксис DynamicResource
работает нормально.Это просто не работает внутри Popup
.Я знаю, что Popup не находится в том же VisualTree, что и основное приложение, поэтому DataContext
shareing немного сложнее.
Это не о DataContext
, а о ResourceDictionary
определено в App.xaml
.my App.xaml
выглядит следующим образом:
<Application x:Class="Projectname"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:CVBRecorder">
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="/Localization/English.xaml"/>
<ResourceDictionary Source="/Localization/German.xaml"/>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
<ResourceDictionary>
<local:AppBootstrapper x:Key="bootstrapper" />
</ResourceDictionary>
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
</Application>
Кто-нибудь знает, почему DynamicResource не отображается во всплывающем окне WPF?