Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/azure/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
扩展WPF工具包PropertyGrid编号格式_Wpf_Xaml_Propertygrid - Fatal编程技术网

扩展WPF工具包PropertyGrid编号格式

扩展WPF工具包PropertyGrid编号格式,wpf,xaml,propertygrid,Wpf,Xaml,Propertygrid,我正在使用扩展WPF工具包中的PropertyGird。我几乎可以做任何我需要的事情,但我无法格式化数字 我有一个double属性,我想让它只显示两个十进制数字(它的字符串格式应该是“F2”)。我尝试过将[DisplayFormat(DataFormatString=“{F2}”)]属性放入,但似乎没有任何效果(我仍然有我的10位数字) 我做错什么了吗?我真的需要为double类型创建一个CustomEditor,它将格式化我所有的double属性吗 感谢您的帮助 编辑:使用网格的AutoGen

我正在使用扩展WPF工具包中的PropertyGird。我几乎可以做任何我需要的事情,但我无法格式化数字

我有一个
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>