Глобальные ресурсы WPF в App.xaml - PullRequest
0 голосов
/ 18 июня 2010

Я создал пользовательский элемент управления Treeview и пытаюсь получить доступ к ресурсу HierarchicalDataTemplate этого элемента управления с другой страницы в том же проекте.

мое свойство this.sceneTemplate имеет значение null. Я перебрал все объекты в словаре, и он существует.

Как мне получить доступ к этому шаблону?

Спасибо

App.xaml

<Application x:Class="Foo.App"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    StartupUri="MainWindow.xaml" 
    DispatcherUnhandledException="App_DispatcherUnhandledException">
    <Application.Resources>
        <ResourceDictionary>
            <!--Merge the global resource to the application-->
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Resources/Global.xaml"/>
                <ResourceDictionary Source="Resources/Scrollbar.xaml"/>
                <ResourceDictionary Source="/Controls/TreeView/Themes/Generic.xaml"/>
                <ResourceDictionary Source="/Controls/ListButton/Themes/Generic.xaml"/>
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>

    </Application.Resources>
</Application>

Где я пытаюсь получить доступ к ресурсу со своей страницы Scene.xaml.cs

 public LeagueDataTemplateSelector()
 {
    if (Application.Current != null)
    {

        this.sceneTemplate = (HierarchicalDataTemplate)Application.Current.FindResource("Scene");
        this.ItemTemplate = (HierarchicalDataTemplate)Application.Current.FindResource("Procedure");
        this.sub1Template = (HierarchicalDataTemplate)Application.Current.FindResource("SubProc1");
        this.sub2Template = (HierarchicalDataTemplate)Application.Current.FindResource("SubProc2");
    }

}

Шаблон иерархической структуры данных

<HierarchicalDataTemplate x:Key="Scene" ItemsSource="{Binding XPath=Level}"
                                ItemContainerStyle="{StaticResource RadTreeViewItemStyleSub1}"
                                ItemTemplate="{StaticResource Procedure}"
                                >
        <Border>
            <Grid>
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="Auto" />
                </Grid.ColumnDefinitions>
                <Label VerticalContentAlignment="Center" 
                        BorderThickness="0" 
                        BorderBrush="Transparent" 
                        Foreground="{StaticResource ListItemUnHighlight}" 
                        FontSize="24" 
                        Tag="{Binding XPath=@name}" 
                        MinHeight="55" 
                        Cursor="Hand" 
                        FontFamily="Arial" 
                        KeyboardNavigation.TabNavigation="None" 
                        Name="SubItem" >
                    <Label.ContextMenu>
                        <ContextMenu Name="editMenu">
                            <MenuItem Header="Edit"/>
                        </ContextMenu>
                    </Label.ContextMenu>
                    <TextBlock Text="{Binding XPath=@name}" VerticalAlignment="Center" TextWrapping="Wrap"></TextBlock>
                </Label>
            </Grid>
        </Border>
    </HierarchicalDataTemplate>

Обновление - Ответ

Наша программа имеет элемент управления «хлебные крошки», который работает со списком страниц для навигации. Этот список страниц добавлялся во время заставки до запуска InitializeComponent. Я переместил это выше кода списка страниц, и теперь все в App.xaml найдено.

1 Ответ

0 голосов
/ 17 сентября 2010

Наша программа имеет элемент управления «хлебные крошки», который работает со списком страниц для навигации по ним.Этот список страниц добавлялся во время заставки до запуска InitializeComponent.Я переместил это выше кода списка страниц, и теперь все в App.xaml найдено.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...