1

私は GridControl を持っており、セル内にいくつかのボタンがあるセル編集を使用しています。

これは、3 つのボタンを持つサンプル列です。

xmlns:dxet="http://schemas.devexpress.com/winfx/2008/xaml/editors/themekeys"
xmlns:dxg="http://schemas.devexpress.com/winfx/2008/xaml/grid"
xmlns:my="clr-namespace:MyProject.DevExpress.View"


<dxg:GridColumn Width="Auto"
                AllowEditing="False"
                AutoFilterCondition="Default"
                FieldName="Information"
                Header="Info"
                ShowInColumnChooser="False"
                VisibleIndex="1">
                <dxg:GridColumn.CellTemplate>
                    <DataTemplate>
                        <dxe:ButtonEdit Name="PART_Editor" AllowDefaultButton="False">
                            <dxe:ButtonEdit.Buttons>                                    
                                <!--  Button Action 1  -->
                                <my:ButtonInfoCustom Tag="Info1">
                                    <my:ButtonInfoCustom.Template>
                                        <DataTemplate>
                                            <Button x:Name="PART_Item"
                                                    Height="Auto"
                                                    Content="{Binding DataContext.RowData.Row.InfoName}"
                                                    Style="{DynamicResource {dxet:ButtonsThemeKey ResourceKey=ButtonStyle,
                                                                                                  ThemeName=DeepBlue}}"
                                                    ToolTip="{Binding DataContext.RowData.Row.CustomTooltip}" />
                                        </DataTemplate>
                                    </my:ButtonInfoCustom.Template>
                                </my:ButtonInfoCustom>
                                <!--  Button Action 2  -->
                                <my:ButtonInfoCustom Tag="Info2">
                                ...

問題はテーマです。

テーマ名を明示的に設定すると、問題なく動作します。

Style="{DynamicResource {dxet:ButtonsThemeKey ResourceKey=ButtonStyle, ThemeName=DeepBlue}}"

バインドしようとすると:

Style="{DynamicResource {dxet:ButtonsThemeKey ResourceKey=ButtonStyle, ThemeName={Binding ThemeToUse}}}"

私はこれを得る:

XamlParseException: タイプ 'ButtonsThemeKeyExtension' の 'ThemeName' プロパティに 'Binding' を設定できません。「Binding」は、DependencyObject の DependencyProperty でのみ設定できます。

私は何をすべきか?

4

1 に答える 1

0

XAML コードにテーマ名を入れるべきではありません

代わりに、実際のテーマを考慮し、それに応じて外観を変更する DevExpress 組み込みコントロールを使用してください。

この例を確認してください (タグを完全に削除し、Styleに置き換えButtonましたSimpleButton):

<dxg:GridColumn Width="Auto"
            AllowEditing="False"
            AutoFilterCondition="Default"
            FieldName="Information"
            Header="Info"
            ShowInColumnChooser="False"
            VisibleIndex="1">
            <dxg:GridColumn.CellTemplate>
                <DataTemplate>
                    <dxe:ButtonEdit Name="PART_Editor" AllowDefaultButton="False">
                        <dxe:ButtonEdit.Buttons>                                    
                            <!--  Button Action 1  -->
                            <my:ButtonInfoCustom Tag="Info1">
                                <my:ButtonInfoCustom.Template>
                                    <DataTemplate>
                                        <dx:SimpleButton x:Name="PART_Item"
                                                Height="Auto"
                                                Content="{Binding DataContext.RowData.Row.InfoName}"                                                                                                       ToolTip="{Binding DataContext.RowData.Row.CustomTooltip}" />
                                    </DataTemplate>
                                </my:ButtonInfoCustom.Template>
                            </my:ButtonInfoCustom>
                            <!--  Button Action 2  -->
                            <my:ButtonInfoCustom Tag="Info2">
    ...
于 2016-05-30T14:33:45.863 に答える