簡體   English   中英

附加屬性作為XAML元素

[英]Attached Properties as XAML Elements

我有一類附加屬性:

public static class XamlProps
{
    #region Attached Properties

    private static readonly DependencyProperty FooProperty = DependencyProperty.RegisterAttached(
        "Foo",
        typeof(string),
        typeof(XamlProps),
        null);

    public static void SetFoo(DependencyObject obj, string action)
    {
        obj.SetValue(FooProperty, action);
    }
}

我在XAML中使用以下屬性:

<Border me:XamlProps.Foo="Foo to the Bar">

但是現在我想在此屬性中使用更大的值,所以我想將其用作元素:

<Border>
    <me:XamlProps.Foo>Foo to the Bar</me:XamlProps.Foo>
</Border>

但是現在Silverlight不再調用SetFoo()了。 我該如何工作?

如果重要,請在Windows Phone 7上。

如果使用該語法,則需要指定類型:

<Border>
    <me:XamlProps.Foo>
        <sys:String>Foo to the Bar</sys:String>
    </me:XamlProps.Foo>
</Border>

sys命名空間映射到System的位置。 您還需要定義GetFoo ...

可能是復制粘貼的錯字,但在注冊時

typeof(XamlActions)

應該

typeof(XamlProps)

您永遠不要依賴於SetFoo被調用。 任何東西都可以簡單地調用SetValue(FooProperty,“ blah”)並繞過它。

您應該在DependencyProperty中定義一個PropertyChangedCallback 注冊呼叫以通知更改。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM