数据触发wpf不起作用

时间:2013-12-27 14:34:52

标签: c# wpf wpf-controls infragistics

我有一个枚举

public enum ConfigFileTypes
{
    NONE,
    CONFIG_FILE
}

我想使用xamdatagrid,每次枚举值为 Config_file 我想显示浏览按钮,对于非我想要什么都不显示,以后将添加更多按钮或选项。

我试图使用xam数据网格我能够创建按钮。将枚举的类型显示为按钮内容。

<igDP:Field Name="ConfigFileType" Label="Config File">
  <igDP:Field.Settings>
    <igDP:FieldSettings >
      <igDP:FieldSettings.CellValuePresenterStyle>
        <Style TargetType="{x:Type igDP:CellValuePresenter}">
          <Setter Property="Template">
            <Setter.Value>
              <ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
                <Button Content="{Binding DataItem.ConfigFileType}"></Button>
              </ControlTemplate>
            </Setter.Value>
          </Setter>
        </Style>
      </igDP:FieldSettings.CellValuePresenterStyle>
     </igDP:FieldSettings>
  </igDP:Field.Settings>
</igDP:Field>

enter image description here

现在我正在尝试使用数据触发器来控制按钮的可见性(这是正确的方法吗?)

<igDP:Field Name="ConfigFileType" Label="Config File">
 <igDP:Field.Settings>
   <igDP:FieldSettings >
     <igDP:FieldSettings.CellValuePresenterStyle>
      <Style TargetType="{x:Type igDP:CellValuePresenter}">

        <DataTrigger Binding="{Binding Path=ConfigFileType}" Value="CONFIG_FILE">
          <Setter Property="Template">
            <Setter.Value>
             <ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
               <Button Content="{Binding DataItem.ConfigFileType}"></Button>
             </ControlTemplate>
            </Setter.Value>
            </Setter>
         </DataTrigger>
        </Style>
       </igDP:FieldSettings.CellValuePresenterStyle>
     </igDP:FieldSettings>
    </igDP:Field.Settings>
   </igDP:Field>

我似乎无法使数据触发器正常工作

2 个答案:

答案 0 :(得分:4)

试试这个

<DataTrigger Binding="{Binding Path=DataItem.ConfigFileType}" Value="CONFIG_FILE">

在绑定而不是ConfigFileType时,它应该是DataItem.ConfigFileType。我希望这会有所帮助。

答案 1 :(得分:1)

<igDP:Field Name="ConfigFileType" Label="Config File">
   <igDP:Field.Settings>
      <igDP:FieldSettings >
        <igDP:FieldSettings.CellValuePresenterStyle>
          <Style TargetType="{x:Type igDP:CellValuePresenter}">
            <Setter Property="Template">
              <Setter.Value>
                 <ControlTemplate TargetType="{x:Type igDP:CellValuePresenter}">
                   <Button Content="{Binding DataItem.ConfigFileType}"></Button>
                    <ControlTemplate.Triggers>
                     <DataTrigger Binding="{Binding DataItem.ConfigFileType}" Value="NONE">
                      <Setter Property="Visibility" Value="Collapsed" />
                     </DataTrigger>
                    <DataTrigger Binding="{Binding DataItem.ConfigFileType}" Value="CONFIG_FILE">
                      <Setter Property="Visibility" Value="Visible" />
                    </DataTrigger>
                  </ControlTemplate.Triggers>
                </ControlTemplate>
              </Setter.Value>
            </Setter>
           </Style>
         </igDP:FieldSettings.CellValuePresenterStyle>
       </igDP:FieldSettings>
      </igDP:Field.Settings>
    </igDP:Field>

感谢ethicallogics回答我找到了正确的方法。