[英]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.