Infragistics/XAML - 检查字段中的值



我一直在检查Infragistics DataProvider 字段中的值,如果它是特定值,请更改它。

<igDP:Field Name="BeginDate" Label="Begin Date">
    <igDP:Field.Settings>
        <igDP:FieldSettings>
            <igDP:FieldSettings.EditorStyle>
                <Style TargetType="{x:Type igEditors:XamDateTimeEditor}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding BeginDate}" Value="01/01/0001">
                            <Setter Property="Text" Value=" "/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </igDP:FieldSettings.EditorStyle>
        </igDP:FieldSettings>
    </igDP:Field.Settings>
</igDP:Field>

"开始日期"值的类型为"日期时间"。我正在尝试检查它是否是日期时间的最小值,如果是这样,我只想让该字段显示空白。

我尝试过XamDateTimeEditor以及XamTextEditor。 使用DateTimeEditor,什么都不会发生。 使用文本编辑器,所有值都将被清空。

希望朝着正确的方向推动!

您可以通过将

编辑器的模板更改为空来执行此操作,当该值为日期时间的最小值时。 完成此操作需要进行一些更改。

更改 #1,在样式中,如果绑定为 BeginDate,并且此绑定无效,因为 DataContext 是数据记录,而不是要绑定到的列表中的项。 如果检查输出窗口,您将看到如下错误:

System.Windows.Data 错误: 40 : 绑定表达式路径错误: 在"对象"数据记录"(哈希代码=13078478)"上找不到"开始日期"属性。绑定表达式:路径=开始日期;DataItem='DataRecord' (HashCode=13078478);目标元素是"XamDateTimeEditor"(Name='');目标属性为"无目标"(类型为"对象")

若要解决此问题,请将绑定更改为"DataItem.BeginDate"而不是"BeginDate"。

更改 #2,修改 Setter 以设置模板而不是文本,并将其设置为空的 ConrolTemplate。

更新后的字段定义将为:

<igDP:Field Name="BeginDate">
    <igDP:Field.Settings>
        <igDP:FieldSettings>
            <igDP:FieldSettings.EditorStyle>
                <Style TargetType="{x:Type igEditors:XamDateTimeEditor}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding DataItem.DateOfHire}" Value="01/01/0001">
                            <Setter Property="Template">
                                <Setter.Value>
                                    <ControlTemplate>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </igDP:FieldSettings.EditorStyle>
        </igDP:FieldSettings>
    </igDP:Field.Settings>
</igDP:Field>

如果在网格中为此字段启用了编辑,则此解决方案仍允许您编辑值。

相关内容

  • 没有找到相关文章

最新更新