• <menu id="w2i4a"></menu>
  • logo DevExpress WPF使用技巧教程

    文檔首頁>>DevExpress WPF使用技巧教程>>DevExpress WPF使用技巧教程:使用WPF Data Editors時如何實現(xiàn)多選

    DevExpress WPF使用技巧教程:使用WPF Data Editors時如何實現(xiàn)多選


    下載DevExpress v20.1完整版 DevExpress v20.1漢化資源獲取

    通過DevExpress WPF Controls,您能創(chuàng)建有著強大互動功能的XAML基礎應用程序,這些應用程序?qū)W⒂诋敶蛻舻男枨蠛蜆?gòu)建未來新一代支持觸摸的解決方案。

    如何啟用多重選擇

    默認情況下,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中,可以通過將SelectionMode屬性設置為Multiple或Extended來啟用多重選擇(請參閱:SelectionMode Enum)。

    綁定數(shù)據(jù)

    啟用多個選擇的編輯器在其EditValue屬性中使用List Object數(shù)據(jù)類型的值,在編輯器中選擇項目時,它將使用選定的值創(chuàng)建List Object數(shù)據(jù)類型的新實例,哪些值將存儲在此列表中取決于您是否定義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對象。

    DevExpress WPF控件使用教程

    如果您定義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屬性值:

    DevExpress WPF控件使用教程

    注意:

    • 如果在EditValue的List Object實例中添加值或從中刪除值,則編輯器將不會選擇/取消選擇相應的項目。 而是使用所需的一組值創(chuàng)建一個新的List Object實例,并在EditValue中使用它;
    • 當您未在ItemSource中定義ValueMember并使用復雜對象*時,EditValue的List Object中的值應來自編輯器的ItemsSource。 在上面的示例中,如果要在代碼中設置SelectedValues,則需要使用Items集合中的Item實例將其設置為List Object:SelectedValues = new List<object>() { Items[0], Items[2], Items[4] };否則,編輯器將無法確定應從源中選擇哪些對象。
    在GridControl單元格中的使用

    要為某個GridColumn指定in-place編輯器,請使用我們在此幫助主題中描述的方法:In-place Editors,編輯器的EditValue與您在GridColumn中定義的數(shù)據(jù)項屬性相關聯(lián):將列綁定到數(shù)據(jù)源字段。

    在編輯器中啟用多選時,它在其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. 將基礎數(shù)據(jù)項的屬性類型更改為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 v20.1.4新版發(fā)布,上中文網(wǎng)立即體驗新版~

    DevExpress技術交流群2:775869749      歡迎一起進群討論

    慧都高端UI界面開發(fā)
    掃碼咨詢


    添加微信 立即咨詢

    電話咨詢

    客服熱線
    023-68661681

    TOP
    三级成人熟女影院,欧美午夜成人精品视频,亚洲国产成人乱色在线观看,色中色成人论坛 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();