如何将GridLength序列化为用户设置的一部分?

时间:2014-05-13 09:07:52

标签: c# wpf xml-serialization

我有一个自定义类型,它有几个GridLength属性。此类型是用户设置的一部分。保存设置后,我的设置文件如下所示:

                <MavEditor xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
                    <RightSideWidth />
                    <LeftSideWidth />
                    <BottomSideHeight />

其中RightSideWidthLeftSideWidthBottomSideHeightGridLength 在保存设置之前,我知道它们的值不是Auto,但看起来像XML序列化程序忽略了这个事实。

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我选择了这种快速又肮脏的解决方案。可以,但是会导致性能问题。

public GridLength Height
{
    // Create the "GridLength" from the separate properties
    get => new GridLength(this.Height_Value, (GridUnitType)Enum.Parse(typeof(GridUnitType), this.Height_GridUnitType));
    set
    {
        // store the "GridLength" properties in separate properties
        this.Height_GridUnitType = value.GridUnitType.ToString();
        this.Height_Value = value.Value;
    }
}

public string Height_GridUnitType { get; set; }
public double Height_Value{ get; set; }