如何为XamDataGrid字段创建样式以在转换器中设置属性

时间:2016-05-13 14:22:06

标签: wpf xaml infragistics xamdatagrid

我想为 XamDataGrid 的字段设置 样式 ,以设置字段的 AllowEdit 属性 转换器 使用某些条件。 我正在尝试这个但不适合我。

<Style TargetType="{x:Type igWPF:Field}">
     <Style.Setters>
            <Setter Property="AllowEdit"  Value="{Binding Path=Field, Source={RelativeSource Self},  Converter={StaticResource FieldsEditableConverter}}">
            </Setter>
    </Style.Setters>
 </Style>

请提供一些代码。

1 个答案:

答案 0 :(得分:0)

Infragistics说:“一旦使用WPF样式,你就无法修改它们。”

因为我正在寻找稍微相同的东西(XamDataGrid,Field,Style,Setter修改只是以编程方式访问setter)但我无法做到。我找到了以下信息:

此异常与Infragistics控件无关。使用WPF样式后,您无法修改它们。如果要以编程方式创建样式,则应从头开始创建样式,而不是尝试修改现有样式对象。

http://www.infragistics.com/community/forums/t/13909.aspx

尽管您无法动态修改它,但是,根据我的具体情况,我最终使用了x:目标setter在需要时使用的Style的名称:所以就在它必须修改列表之前(CanExecute)。

这就是我的代码的样子:

C#:

var cm = uc.Resources["fiContextMenu"] as ContextMenu;
foreach(MenuItem mi in cm.Items)
    if(mi.Header.Equals("Remove File"))
        mi.IsEnabled = false; //Disallow remove when empty list

Xaml:

<igDP:FieldSettings.EditorStyle>
    <Style TargetType="{x:Type igEditors:XamComboEditor}">
        <Setter Property="ContextMenu" Value="{StaticResource fiContextMenu}" />