簡體   English   中英

我可以給Shape或其他對象一個自定義屬性,例如“ MyCustomID”嗎?

[英]Can I give a Shape or other object a custom property, like “MyCustomID”?

我可以為元素提供自定義屬性/屬性/字段,以便以簡單的方式存儲有關它們的信息嗎? 就像myobject.parentid(parentid是我創建對象時設置的數字,然后在與此對象交互時通過myobject.parentid檢索)。

或者以最簡單的方式存儲myobject.Name或myobject.Tag中的信息?

最簡單的方法是在WPF中使用附加屬性

附加屬性允許您創建任意屬性並將其與元素相關聯。 然后,您可以使用它來存儲數據並參與綁定方案。

public class MyCustomIdSource
{
    public static readonly DependencyProperty MyCustomIdProperty = 
        DependencyProperty.RegisterAttached("MyCustomId", typeof(Int32), typeof(MyCustomIdSource));

    public static void SetMyCustomId(UIElement element, Int32 value)
    {
        element.SetValue(MyCustomIdProperty, value);
    }

    public static Int32 GetMyCustomId(UIElement element)
    {
        return (Int32)element.GetValue(MyCustomIdProperty);
    }
}

但是,您可以通過將自定義數據放入WPF元素本身來考慮您正在完成的工作。 你真的想讓元素對此負責嗎? 將責任划分為一個類,該類維護視圖的邏輯和狀態,然后將視圖綁定到它,是否更有意義? 這被稱為Model-View-ViewModel模式,非常適合WPF開發。

暫無
暫無

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

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