Silverlight 4 и Page.Resources Binding - PullRequest
1 голос
/ 08 июля 2010

В моем приложении SL4 у меня есть класс с именем Images, который имеет два свойства (ImagePath, ImageName) и метод getImages (), который перезапускает список ObservableCollection всех изображений. Мне нужно создать ресурс на моей странице, чтобы при динамической загрузке DataTemplate он мог иметь доступ к изображениям в одном из полей ComboBox.

Как я могу это сделать?

<Page.Resources>
<local:Images x:Key="MyImages"/>
</Page.Resources>

Но в моем коде файла я не могу получить доступ к MyImages

1 Ответ

0 голосов
/ 06 марта 2015

У вас есть 3 варианта

1.Используйте глобальный файл ресурсов приложения.

 <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Assets/StylesA.xaml"/>
                <ResourceDictionary Source="Assets/StylesB.xaml" />
            </ResourceDictionary.MergedDictionaries>
        </ResourceDictionary>
    </Application.Resources>

А в StylesA.xaml просто укажите стиль, который вы должны использовать

  <StackPanel>
            <StackPanel.Resources>
                <Style x:Key="HeaderStyle" TargetType="TextBlock">
                    <Setter Property="FontWeight" Value="Bold"></Setter>
                    <Setter Property="FontSize" Value="12"></Setter>
                </Style>
            </StackPanel.Resources>            
            <TextBlock Style="{StaticResource HeaderStyle}"></TextBlock> ....

2.Используйте раздел ресурсов местного управления.

  <StackPanel>
            <StackPanel.Resources>
                <Style x:Key="HeaderStyle" TargetType="TextBlock">
                    <Setter Property="FontWeight" Value="Bold"></Setter>
                    <Setter Property="FontSize" Value="12"></Setter>
                </Style>
            </StackPanel.Resources>            
            <TextBlock Style="{StaticResource HeaderStyle}"></TextBlock> ....

3.Просто используйте Page.Resources на своей странице

 <navigation:Page.Resources>
        <Style x:Key="ButtonFocusVisual">
            <Setter Property="Control.Template">
                <Setter.Value>
                    <ControlTemplate>
                        <Border>
                            <Rectangle Margin="2" StrokeThickness="1" Stroke="#60000000" StrokeDashArray="1 2" />
                        </Border>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>      
    </navigation:Page.Resources>

Надеюсь, это поможет.:)

...