SimpleWindow
载入中...
搜索中...
未找到
ItemsControl.h
1#pragma once
2
3#include "Control.h"
4
5namespace sw
6{
7 template <typename TItem>
8 class ItemsControl; // 向前声明
9
13 typedef ItemsControl<std::wstring> StrItemsControl;
14
18 template <typename TItem>
19 class ItemsControl : public Control
20 {
21 public:
27 .Getter([](ItemsControl *self) -> int {
28 return self->GetItemsCount();
29 })};
30
36 .Getter([](ItemsControl *self) -> int {
37 return self->GetSelectedIndex();
38 })
39 .Setter([](ItemsControl *self, int value) {
40 self->SetSelectedIndex(value);
41 })};
42
48 .Getter([](ItemsControl *self) -> TItem {
49 return self->GetSelectedItem();
50 })};
51
52 protected:
56 virtual void OnSelectionChanged()
57 {
60 this->RaiseRoutedEvent(ItemsControl_SelectionChanged);
61 }
62
63 protected:
67 virtual int GetItemsCount() = 0;
68
72 virtual int GetSelectedIndex() = 0;
73
77 virtual void SetSelectedIndex(int index) = 0;
78
82 virtual TItem GetSelectedItem() = 0;
83
84 public:
88 virtual void Clear() = 0;
89
94 virtual TItem GetItemAt(int index) = 0;
95
101 virtual bool AddItem(const TItem &item) = 0;
102
109 virtual bool InsertItem(int index, const TItem &item) = 0;
110
117 virtual bool UpdateItem(int index, const TItem &newValue) = 0;
118
124 virtual bool RemoveItemAt(int index) = 0;
125 };
126}
控件
Definition Control.h:12
表示可用于呈现一组项的控件
Definition ItemsControl.h:20
virtual int GetItemsCount()=0
获取子项数
virtual TItem GetItemAt(int index)=0
获取指定索引处子项的值
virtual void Clear()=0
清空所有子项
virtual bool AddItem(const TItem &item)=0
添加新的子项
const ReadOnlyProperty< int > ItemsCount
项数
Definition ItemsControl.h:25
const ReadOnlyProperty< TItem > SelectedItem
选中项
Definition ItemsControl.h:46
virtual TItem GetSelectedItem()=0
获取选中项
virtual bool RemoveItemAt(int index)=0
移除指定索引处的子项
virtual void SetSelectedIndex(int index)=0
设置选中项索引
virtual void OnSelectionChanged()
选中项改变时调用该函数
Definition ItemsControl.h:56
virtual bool InsertItem(int index, const TItem &item)=0
添加子项到指定索引
virtual int GetSelectedIndex()=0
选中项的索引,当无选中项时为-1
const Property< int > SelectedIndex
选中项的索引,当无选中项时为-1
Definition ItemsControl.h:34
virtual bool UpdateItem(int index, const TItem &newValue)=0
更新指定位置的子项
void RaisePropertyChanged(FieldId propertyId)
触发属性更改通知事件
Definition ObservableObject.h:20
static StaticPropertyInitializer< T > Init()
获取静态属性初始化器
Definition Property.h:1547
属性
Definition Property.h:1743
只读属性
Definition Property.h:1828
void RaiseRoutedEvent(RoutedEventType eventType)
触发路由事件