0

私のwpfアプリケーションには次のスタイルがあります。

Xaml:

<Style x:Key="customTableViewDataRowStyle" TargetType="{x:Type xcdg:DataRow}">

C#

this.Resources.Add(typeof(DataRow), this.FindResource("customTableViewDataRowStyle"));

XceedDatagridの行の外観を変更します。

これはすべてうまくいきます!

しかし、私は行って、別のXceed Datagridをアプリに追加しました。これも、このスタイルを使用しています。

それをさせない方法はありますか?特定のグリッドにのみ影響を与えるようにできますか?

4

1 に答える 1

1

スタイルをスタンドアロンのResourceDictionaryに分離してから、目的のDataGridでのみResourceDictionaryを参照することができます。

2つのDataGridを使用した例では、そのうちの1つだけにスタイルが設定されています。

CustomDataGridStyles.xaml:

<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <Style TargetType="{x:Type DataGrid}">
        <Setter Property="Background" Value="Red" />
        <!-- Other Style Settings -->
    </Style>

</ResourceDictionary>

窓:

<Window x:Class="SpecificControlStyle.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        Title="MainWindow" Height="350" Width="525">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition />
            <RowDefinition />
        </Grid.RowDefinitions>

        <DataGrid Grid.Row="0">
            <DataGrid.Resources>
                <ResourceDictionary>
                    <ResourceDictionary.MergedDictionaries>
                        <ResourceDictionary Source="CustomDataGridStyles.xaml" />
                    </ResourceDictionary.MergedDictionaries>
                </ResourceDictionary>
            </DataGrid.Resources>
        </DataGrid>
        <DataGrid Grid.Row="1" />
    </Grid>
</Window>
于 2012-10-30T07:58:29.837 に答える