Infragistics/XAML-检查字段中的值

Infragistics/XAML-检查字段中的值,xaml,infragistics,Xaml,Infragistics,我一直在检查Infragistics DataProvider字段中的一个值,如果它是一个特定的值,请更改它 <igDP:Field Name="BeginDate" Label="Begin Date"> <igDP:Field.Settings> <igDP:FieldSettings> <igDP:FieldSettings.EditorStyle> <St

我一直在检查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>

BeginDate值的类型为DateTime。我试图检查它是否是DateTime的最小值,如果是,我只是希望该字段显示为空白

我试过XamDateTimeEditor和XamTextEditor。使用DateTimeEditor,不会发生任何事情。使用TextEditor,所有值都将被清除


如果你能朝着正确的方向轻推一下,我将不胜感激

当值是DateTime的最小值时,可以将编辑器的模板更改为空。要实现这一点,需要进行一些更改

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

System.Windows.Data错误:40:BindingExpression路径错误:在“对象”“数据记录”(HashCode=13078478)上找不到“BeginDate”属性。BindingExpression:Path=BeginDate;DataItem='DataRecord'(HashCode=13078478);目标元素是“XamDateTimeEditor”(名称=“”);目标属性为“NoTarget”(类型为“Object”)

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

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

更新后的字段定义将为:

<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>


如果网格中的此字段启用了编辑功能,此解决方案仍然允许您编辑值。

谢谢,先生,这非常有帮助