WPF中的依賴項屬性

2021-04-20 00:23:57 字數 1181 閱讀 6901

已經學習了好幾天了,乙個小例子讓我豁然開朗,以下是我個人的一點理解:

由於wpf由xaml檔案和c#檔案組成的,c#負責邏輯處理,所以很多控制項屬性就會別修改,此時我們希望他能夠反映到介面上,依賴項屬性就能夠做到這點。當然系統的控制項的一般的屬性都是依賴性的,我們不必擔心,但在資料繫結的時候,我們會經常繫結到物件,這就要求物件的屬性變化是也要通知到物件。通常可以採用propertychangedeventhandler來通知介面,如果在建立類的時候就把其屬性寫為依賴項屬性就省去了這些麻煩,下面是乙個小例子可以清楚的看到他們的區別:

xaml:

c#:private void onmousedoubleclick(object sender,mousebuttoneventargs e)

自定義的類的屬性如果定義的普通型別:

public class person 

public person(string _name)

public string name

set 

}       

}時,雙擊listboxitem時雖然person.name變成了"changed",但是不會反應的介面,也就是說介面上根本就看不到。這時可以使用propertychangedeventhandler來通知介面:

public class person :inotifypropertychanged

public person(string _name)

public string name

set}

protected void onpropertychanged(string name)

}這也是通常用的方法,此時就可以反映到介面上,我們還可以使用依賴項屬性來解決這個問題:

public class person : dependencyobject

public person(string _name)

public string name

set}

}該類中的name屬性就相當於button中的height等屬性,在c#中改變時同樣可以放映到桌面上。

看懂了這個例子應該就明白依賴項屬性時怎麼回事了,不過對於自定義類一般是不需要寫依賴項屬性的,使用第一種解決方法就可以了,當系統的預設控制項滿足不了需要而要重寫乙個控制項繼承預設控制項時寫乙個依賴項屬性時個很好的選擇。

不過在多執行緒中可能會出問題,這點我不是很清楚。

WPF 依賴項屬性

對比與c 的屬性。依賴屬性是為wpf建立的。wpf很多情況下都在使用依賴屬性。1 依賴屬性加入了屬性變化通知,限制,驗證功能。2 節約記憶體 3 通過多種方式設定依賴屬性的值 1 依賴屬性繼承自dependencyobject 2 使用public static 宣告乙個變數 public stat...

WPF中的依賴屬性

昨天學習了下wpf的以來屬性,記錄下自己的理解。我們一般給乙個類設定乙個屬性很簡單,但是如果給乙個控制項設定乙個屬性,會比較麻煩。比如說,自己做乙個button控制項,繼承自button 1 class mybutton button 2 11 set 12 15 16 17 這個屬性目的是設定按鈕...

學習WPF 初識依賴項屬性

入門 首先建立乙個依賴項屬性 然後繫結父容器的datacontext到這個依賴項的例項 接著繫結子元素的屬性到依賴項屬性 注意button的content屬性 程式最終的執行結果 說明 首先是定義表示屬性的物件,乙個依賴項屬性的物件必然是dependencyproperty的例項 這個例項必須始終保...