原創|使用教程|編輯:龔雪|2020-07-06 10:14:30.823|閱讀 437 次
概述:通過DevExpress WPF Controls,您能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取
通過DevExpress WPF Controls,您能創建有著強大互動功能的XAML基礎應用程序,這些應用程序專注于當代客戶的需求和構建未來新一代支持觸摸的解決方案。
默認情況下,ComboBoxEdit、LookUpEdit和ListBoxEdit編輯器使用單個選擇。 要在這些編輯器中啟用多個選擇,您需要更改其操作模式 - 在其StyleSettings屬性中使用相應的設置對象:
<dxe:ComboBoxEdit ...> <dxe:ComboBoxEdit.StyleSettings> <dxe:CheckedComboBoxStyleSettings/> </dxe:ComboBoxEdit.StyleSettings> </dxe:ComboBoxEdit>
我們在以下幫助主題中描述了可用的設置對象:
注意:在In-Place模式下定義這些編輯器時,將使用ComboBoxEditSettings、LookUpEditSettings和ListBoxEditSettings對象,這些對象也具有StyleSettings屬性:
<dxg:GridColumn ...> <dxg:GridColumn.EditSettings> <dxe:ComboBoxEditSettings ...> <dxe:ComboBoxEditSettings.StyleSettings> <dxe:CheckedComboBoxStyleSettings/> </dxe:ComboBoxEditSettings.StyleSettings> </dxe:ComboBoxEditSettings> </dxg:GridColumn.EditSettings> </dxg:GridColumn>
在ListBoxEdit和ListBoxEditSettings中,可以通過將屬性設置為Multiple或Extended來啟用多重選擇(請參閱:)。
啟用多個選擇的編輯器在其EditValue屬性中使用List Object數據類型的值,在編輯器中選擇項目時,它將使用選定的值創建List Object數據類型的新實例,哪些值將存儲在此列表中取決于您是否定義ValueMember屬性。
假設您具有以下Item類,Items集合屬性(在編輯器的ItemsSource屬性中使用)和SelectedItems屬性(在EditValue屬性中使用):
public class Item { public int Id { get; set; } public string Name { get; set; } } ... public ObservableCollection<Item> Items { get; set; } = new ObservableCollection<Item>(Enumerable.Range(0, 10) .Select(c => new Item { Id = c, Name = "Item #" + c })); public List<Object> SelectedValues { get; set; }
如果您不定義ValueMember
<dxe:ListBoxEdit ItemsSource="{Binding Items}"
EditValue="{Binding SelectedValues}"
DisplayMember="Name">
<dxe:ListBoxEdit.StyleSettings>
<dxe:CheckedListBoxEditStyleSettings/>
</dxe:ListBoxEdit.StyleSettings>
</dxe:ListBoxEdit>
EditValue和SelectedValues屬性將包含List Object以及從Items中選擇的Item對象。
如果您定義ValueMember
<dxe:ListBoxEdit ItemsSource="{Binding Items}"
EditValue="{Binding SelectedValues}"
ValueMember="Id"
DisplayMember="Name">
<dxe:ListBoxEdit.StyleSettings>
<dxe:CheckedListBoxEditStyleSettings/>
</dxe:ListBoxEdit.StyleSettings>
</dxe:ListBoxEdit>
EditValue和SelectedValues屬性將包含List Object以及從ItemsSource中選擇的Item對象的Id屬性值:
注意:
要為某個GridColumn指定in-place編輯器,請使用我們在此幫助主題中描述的方法:,編輯器的EditValue與您在GridColumn中定義的數據項屬性相關聯:將列綁定到數據源字段。
在編輯器中啟用多選時,它在其EditValue中使用List Object,但是FieldName不支持編輯集合屬性, 這就是為什么您將無法在下面的GridColumn單元格中編輯SelectedValues屬性的原因:
public class GridDataItem { ... public List<Object> SelectedValues { get; set; } ... } <dxg:GridColumn FieldName="SelectedValues" ...> <dxg:GridColumn.EditSettings> <dxe:ComboBoxEditSettings ...> <dxe:ComboBoxEditSettings.StyleSettings> <dxe:CheckedComboBoxStyleSettings/> </dxe:ComboBoxEditSettings.StyleSettings> </dxe:ComboBoxEditSettings> </dxg:GridColumn.EditSettings> </dxg:GridColumn>
在這種情況下啟用編輯使用以下方法:
1. 在GridColumn中使用GridControl的Binding屬性。
您還需要在綁定表達式中將Mode設置為TwoWay,以便在使用Binding屬性時啟用編輯:
<dxg:GridColumn Binding="{Binding Path=SelectedValues, Mode=TwoWay}" ...> <dxg:GridColumn.EditSettings> <dxe:ComboBoxEditSettings ...> <dxe:ComboBoxEditSettings.StyleSettings> <dxe:CheckedComboBoxStyleSettings/> </dxe:ComboBoxEditSettings.StyleSettings> </dxe:ComboBoxEditSettings> </dxg:GridColumn.EditSettings> </dxg:GridColumn>
2. 將基礎數據項的屬性類型更改為Object:
public class GridDataItem { ... public Object SelectedValues { get; set; } ... } <dxg:GridColumn FieldName="SelectedValues" ...> <dxg:GridColumn.EditSettings> <dxe:ComboBoxEditSettings ...> <dxe:ComboBoxEditSettings.StyleSettings> <dxe:CheckedComboBoxStyleSettings/> </dxe:ComboBoxEditSettings.StyleSettings> </dxe:ComboBoxEditSettings> </dxg:GridColumn.EditSettings> </dxg:GridColumn>
DevExpress技術交流群2:775869749 歡迎一起進群討論
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自:慧都網