WPF xaml中列表依賴屬性的定義

2021-09-07 19:58:57 字數 3332 閱讀 5338

原文:

wpf xaml中列表依賴屬性的定義

如上圖,是乙個列表標題排序控制項,我們需要定義乙個標題列表,從而讓呼叫方可以自由的設定標題資訊。

在自定義控制項時,會遇到列表依賴屬性,那麼該如何定義呢?

下面是錯誤的定義方式:

1     /// <

summary

>

2 /// 標識 <

see

cref

="headers"

/>

的依賴項屬性。

3 ///

summary

>

4public static readonly dependencyproperty headersproperty = dependencyproperty.register(

5 "headers", typeof(list<

headercontent

>

), typeof(listviewheader),

6 new propertymetadata(new list<

headercontent

>

(), (d, e) => ((listviewheader)d).initheaderlist()));

78 /// <

summary

>

9/// 獲取或設定表頭的資訊集合。

10/// 由於這是依賴項屬性,所以很難限制其不為 null,需要總是判空。

11 ///

summary

>

12 public list<

headercontent

>

headers

13

按照如上依賴屬性的定義,

1     /// <

summary

>

2 /// 標識 <

see

cref

="headers"

/>

的依賴項屬性。

3 ///

summary

>

4public static readonly dependencyproperty headersproperty = dependencyproperty.register(

5"headers", typeof(listviewheadercontentcollection), typeof(listviewheader),

6new propertymetadata(default(listviewheadercontentcollection), (d, e) => ((listviewheader)d).initheaderlist()));

78 /// <

summary

>

9/// 獲取或設定表頭的資訊集合。

10/// 由於這是依賴項屬性,所以很難限制其不為 null,需要總是判空。

11 ///

summary

>

12public listviewheadercontentcollection headers

13

通過實現ilist和ilist介面,可以讓列表在介面呼叫時,可以以列表的形式新增內容。

注:將實現的介面方法修改下內容即可

1     public sealed class listviewheadercontentcollection : ilist<

headercontent

>

, ilist28

9ienumerator ienumerable.getenumerator()

1013

14public void add(headercontent item)

1518

19public int add(object value)

2024

25public bool contains(object value)

2629

30public void clear()

3134

35public int indexof(object value)

3639

40public void insert(int index, object value)

4144

45public void remove(object value)

4649

50void ilist.removeat(int index)

5154

55object ilist.this[int index]

5660

61public bool contains(headercontent item)

6265

66public void copyto(headercontent array, int arrayindex)

6770

71public bool remove(headercontent item)

7275

76public void copyto(array array, int index)

7780

81public int count => _headcontents.count;

8283

public object syncroot

8485

public bool issynchronized

8687

public bool isreadonly

8889

public bool isfixedsize

9091

public int indexof(headercontent item)

9295

96public void insert(int index, headercontent item)

97100

101 void ilist<

headercontent

>

.removeat(int index)

102105

106public headercontent this[int index]

107111 }

呼叫:

WPF xaml中列表依賴屬性的定義

原文 wpf xaml中列表依賴屬性的定義 如上圖,是乙個列表標題排序控制項,我們需要定義乙個標題列表,從而讓呼叫方可以自由的設定標題資訊。在自定義控制項時,會遇到列表依賴屬性,那麼該如何定義呢?下面是錯誤的定義方式 1 summary 2 標識 see cref headers 的依賴項屬性。3 ...

WPF xaml中列表依賴屬性的定義

原文 wpf xaml中列表依賴屬性的定義 如上圖,是乙個列表標題排序控制項,我們需要定義乙個標題列表,從而讓呼叫方可以自由的設定標題資訊。在自定義控制項時,會遇到列表依賴屬性,那麼該如何定義呢?下面是錯誤的定義方式 1 summary 2 標識 see cref headers 的依賴項屬性。3 ...

WPF中的依賴屬性

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