扩展WPF工具包PropertyGrid编号格式
我正在使用扩展WPF工具包中的PropertyGird。我几乎可以做任何我需要的事情,但我无法格式化数字 我有一个扩展WPF工具包PropertyGrid编号格式,wpf,xaml,propertygrid,Wpf,Xaml,Propertygrid,我正在使用扩展WPF工具包中的PropertyGird。我几乎可以做任何我需要的事情,但我无法格式化数字 我有一个double属性,我想让它只显示两个十进制数字(它的字符串格式应该是“F2”)。我尝试过将[DisplayFormat(DataFormatString=“{F2}”)]属性放入,但似乎没有任何效果(我仍然有我的10位数字) 我做错什么了吗?我真的需要为double类型创建一个CustomEditor,它将格式化我所有的double属性吗 感谢您的帮助 编辑:使用网格的AutoGen
double
属性,我想让它只显示两个十进制数字(它的字符串格式应该是“F2”
)。我尝试过将[DisplayFormat(DataFormatString=“{F2}”)]
属性放入,但似乎没有任何效果(我仍然有我的10位数字)
我做错什么了吗?我真的需要为double
类型创建一个CustomEditor,它将格式化我所有的double
属性吗
感谢您的帮助
编辑:使用网格的AutoGenerateProperties选项自动绑定属性。我没有显式绑定。如果可能的话,我希望保持这种方式,但这不是强制性的。我只能找到一种方法(非常脏):
void PropertyGrid\u SelectedObjectChanged(对象发送方,RoutedPropertyChangedEventArgs e)
{
foreach(pg.Properties中的var p)
{
if(p.PropertyType==typeof(double))//或按p.Name筛选
p、 Value=string.Format(“{0:F2}”,p.Value);
}
}
我终于找到了在PropertyGrid.EditorDefinitions中使用数据模板的方法。在下面的示例中,Double类型的每个属性都会获得一个格式为“F2”的“DoubleUpDown”编辑器
xmlns:System=“clr命名空间:系统;程序集=mscorlib”
xmlns:xctk=”http://schemas.xceed.com/wpf/xaml/toolkit"
通过在EditorTemplateDefinition.TargetProperties中命名特定属性,只有这些属性才会受到以下DataTemplate的影响
<xctk:EditorTemplateDefinition.TargetProperties>
<System:String>Volume</System:String>
<System:String>Weight</System:String>
</xctk:EditorTemplateDefinition.TargetProperties>
卷
重量
你能展示一下你是如何绑定属性的吗?你是对的,它非常脏:D。不管怎样,最后我们决定“所有双精度的两位数都可以”,所以我将为所有双精度的属性设置一个自定义编辑器。我仍然感到困惑的是,大多数属性都能正常工作,但DisplayFormat
却不能。无论如何,谢谢你!
xmlns:System="clr-namespace:System;assembly=mscorlib"
xmlns:xctk="http://schemas.xceed.com/wpf/xaml/toolkit"
<xctk:PropertyGrid ...>
<xctk:PropertyGrid.EditorDefinitions>
<xctk:EditorTemplateDefinition>
<xctk:EditorTemplateDefinition.TargetProperties>
<xctk:TargetPropertyType Type="{x:Type System:Double}" />
</xctk:EditorTemplateDefinition.TargetProperties>
<xctk:EditorTemplateDefinition.EditingTemplate>
<DataTemplate>
<xctk:DoubleUpDown FormatString="F2"
Value="{Binding Value, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</xctk:EditorTemplateDefinition.EditingTemplate>
</xctk:EditorTemplateDefinition>
</xctk:PropertyGrid.EditorDefinitions>
</xctk:PropertyGrid>
<xctk:EditorTemplateDefinition.TargetProperties>
<System:String>Volume</System:String>
<System:String>Weight</System:String>
</xctk:EditorTemplateDefinition.TargetProperties>