如何将自定义XAML属性添加到继承UserControl的类?

时间:2011-05-09 15:02:25

标签: c# wpf xaml

我有一个自定义UserControl,我想给它一个自定义属性"MyProperty",我可以在XAML中设置它。所以我的XAML看起来像这样:

<EventDet:EventAddressControl 
            MyCustomProperty="formattype"     
            x:Name="EventSessionLocationControl"/>

如何为UserControl提供自定义属性/属性,然后我可以在XAML中设置?

3 个答案:

答案 0 :(得分:8)

如果您使用的是CLRProperty,则不能用于绑定目的。

 public partial class MyCustomControl : UserControl
{
    public MyCustomControl()
    {
        InitializeComponent();
    }

    public string MyCLRProperty { get; set; }

    public string MyProperty
    {
        get { return (string)GetValue(MyPropertyProperty); }
        set { SetValue(MyPropertyProperty, value); }
    }

    // Using a DependencyProperty as the backing store for MyProperty.  This enables animation, styling, binding, etc...
    public static readonly DependencyProperty MyPropertyProperty =
        DependencyProperty.Register("MyProperty", typeof(string), typeof(MyCustomControl ));
}
 <my:MyCustomControl MyProperty="{Binding BindingProperty}"
                     MyCLRProperty="MyCLRProperty"/>

答案 1 :(得分:2)

在你的课堂上放一个普通的DependencyProperty

答案 2 :(得分:1)

如果您只想从xaml设置值,则可以使用常规属性。如果要将属性与触发器,样式等一起使用,则需要使用依赖项属性来利用这些WPF功能