XamlWriter未对WPF CustomControl的属性进行序列化

时间:2016-05-04 10:09:13

标签: c# wpf xaml serialization

我们创建了一个WPF CustomControl,它继承自TextBox并添加了一个新的DependencyProperty“TableName”,因此我们可以在那里设置控件绑定到的DataTable的名称。 控件在运行时生成,属性TableName为p.e.设置为“table1”。 然后我们将包含控件的Panel(比如我们的CustomControl)序列化为一个XAML文件,就像CodeProject中的这篇文章一样,因为我们也希望序列化绑定:

XamlWriter-and-Bindings-Serialization

不幸的是 - 而不是像Width这样的属性 - 我们新的DependencyProperty没有被序列化。

有没有办法强制XamlWriter序列化属性?

提前致谢!

这是CustomControl中名为“CustomTextBox”的属性的定义:

public static readonly DependencyProperty TableNameProperty = DependencyProperty.Register("TableName", typeof(string), typeof(CustomTextBox));

public string TableName { get; set; }

这是Generic.xaml中的风格:

<Style TargetType="{x:Type local:CustomTextBox}" BasedOn="{StaticResource {x:Type TextBox}}">
</Style>

1 个答案:

答案 0 :(得分:0)

您提供了CLR属性,但它没有执行任何操作。您需要将其链接到DependencyProperty:

public string TableName
{
    get { return (string)GetValue(TableNameProperty); }
    set { SetValue(TableNameProperty, value); }
}