C#中 "<DataGridTextColumn Width="*" Binding="{Binding OwnerAmount, Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" Header="出资金额(万元)">\n <DataGridTextColumn.ElementStyle>\n\n\n <Style TargetType="TextBlock">\n <Setter Property="HorizontalAlignment" Value="Center" />\n <Setter Property="TextWrapping" Value="Wrap" />\n \n </DataGridTextColumn.ElementStyle>\n "绑定的字段为数字,输入其他类型的文字时会提示未能转换值"",如何把这个显示信息更改为自己想要的提示信息内容:要将转换错误的提示信息更改为自定义的提示信息,可以使用IDataErrorInfo接口来实现。首先,确保绑定的数据模型实现了IDataErrorInfo接口。然后,在数据模型中,可以通过在属性的set方法中检查输入值的类型,并返回自定义的错误提示信息。以下是一个示例:\n\ncsharp\npublic class YourDataModel : IDataErrorInfo\n{\n private double ownerAmount;\n public double OwnerAmount\n {\n get { return ownerAmount; }\n set\n {\n // 检查输入值的类型\n if (!double.TryParse(value.ToString(), out _))\n {\n // 返回自定义的错误提示信息\n Error = \"请输入有效的数字\";\n }\n else\n {\n ownerAmount = value;\n Error = null;\n }\n }\n }\n\n // 实现 IDataErrorInfo 接口\n public string Error { get; private set; }\n public string this[string columnName]\n {\n get { return Error; }\n }\n}\n\n\n然后,在XAML中,可以使用Validation.ErrorTemplate属性来指定错误提示样式。在DataGridTextColumn中,添加Validation.ErrorTemplate属性,并定义一个包含自定义提示信息的ControlTemplate。以下是一个示例:\n\nxaml\n<DataGridTextColumn Width=\"*\"\n Binding=\"{Binding OwnerAmount, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True}\"\n Header=\"出资金额(万元)\">\n <DataGridTextColumn.ElementStyle>\n <Style TargetType=\"TextBlock\">\n <Setter Property=\"HorizontalAlignment\" Value=\"Center\" />\n <Setter Property=\"TextWrapping\" Value=\"Wrap\" />\n </Style>\n </DataGridTextColumn.ElementStyle>\n <DataGridTextColumn.EditingElementStyle>\n <Style TargetType=\"TextBox\">\n <Setter Property=\"HorizontalAlignment\" Value=\"Center\" />\n <Setter Property=\"TextWrapping\" Value=\"Wrap\" />\n <Setter Property=\"Validation.ErrorTemplate\">\n <Setter.Value>\n <ControlTemplate>\n <StackPanel>\n <AdornedElementPlaceholder x:Name=\"placeholder\" />\n <TextBlock Text=\"{Binding [0].Error}\"\n Foreground=\"Red\"\n Margin=\"5,0,0,0\"\n HorizontalAlignment=\"Left\" />\n </StackPanel>\n </ControlTemplate>\n </Setter.Value>\n </Setter>\n </Style>\n </DataGridTextColumn.EditingElementStyle>\n</DataGridTextColumn>\n\n\n在这个示例中,当输入一个无法转换为double类型的值时,会显示一个红色的错误提示文本。文本内容是通过Binding绑定到错误信息属性[0].Error上的。同时,由于使用了ValidatesOnDataErrors=True,因此会自动调用数据模型中的IDataErrorInfo接口实现来获取错误信息。


原文地址: https://www.cveoy.top/t/topic/p3ri 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录