Можно ли поместить каждый шаблон в раздел window.resources? - PullRequest
0 голосов
/ 31 марта 2011

Мне было интересно: если вы создаете шаблон под элементом управления (например, сетка данных), всегда ли вы можете поместить все, что вы делаете, в window.resources? Приведу пример:

<Grid Background="DarkGray">
    <Grid.RowDefinitions>
        <RowDefinition Height="*" />
        <RowDefinition Height="20" />
    </Grid.RowDefinitions>
    <DataGrid Name="dgFruit" ItemsSource="{Binding}" AutoGenerateColumns="false" ItemTemplate="{StaticResource datagrid}" >
        <DataGrid.RowHeaderStyle>
            <Style TargetType="DataGridRowHeader">
                <Setter Property="Content" Value="{Binding Path=Number}" />
            </Style>
        </DataGrid.RowHeaderStyle>
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Path=Name}" Header="Name"/>
            <DataGridTextColumn Binding="{Binding Path=Color}" Header="Color"/>
            <DataGridCheckBoxColumn Binding="{Binding Path=Mjummy}" Header="Mjummy"/>
            <DataGridTextColumn Binding="{Binding Path=Number}" Header="Number"/>
            <DataGridTextColumn Binding="{Binding Path=Pits.Count}" Header="Pits"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

Можете ли вы сделать таблицу данных всего от <DataGrid.RowHeaderStyle> до </DataGrid.Columns>? И если да, не могли бы вы рассказать, как?

Заранее спасибо

Ответы [ 2 ]

2 голосов
/ 31 марта 2011

Это не то, что я бы вставил в шаблон, а скорее в стиль, и да, этот стиль можно поместить в ресурсы.

1 голос
/ 31 марта 2011

Да.

Очень важно знать, как WPF находит ресурсы.Когда он пытается найти ресурс, он сначала просматривает словарь ресурсов текущего объекта.Если ресурс не найден, он выглядит в словаре ресурсов своего контейнера.Он делает это рекурсивно, пока не достигнет объекта, у которого нет контейнера (то есть окна), и в этом случае он смотрит в словарь ресурсов приложения, а затем, наконец, сдастся и скажет, что ресурс не может быть найден.

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