翻譯|使用教程|編輯:龔雪|2021-01-14 10:07:38.753|閱讀 332 次
概述:DevExpress WPF Subscription擁有120+個控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序,本文將為大家介紹如何將樹編輯器添加到WPF數(shù)據(jù)網(wǎng)格單元中。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關(guān)鏈接:
下載DevExpress v20.2完整版 DevExpress v20.2漢化資源獲取
DevExpress WPF Subscription(曾命名DevExpress WPF Controls)擁有120+個控件和庫,將幫助您交付滿足甚至超出企業(yè)需求的高性能業(yè)務(wù)應(yīng)用程序。通過DevExpress WPF能創(chuàng)建有著強大互動功能的XAML基礎(chǔ)應(yīng)用程序,這些應(yīng)用程序?qū)W⒂诋?dāng)代客戶的需求和構(gòu)建未來新一代支持觸摸的解決方案。 無論是Office辦公軟件的衍伸產(chǎn)品,還是以數(shù)據(jù)為中心的商業(yè)智能產(chǎn)品,都能通過DevExpress WPF控件來實現(xiàn)。
試圖將樹編輯器嵌入具有多選功能的網(wǎng)格單元中,如何將視圖模型SelectedPerils綁定到彈出樹控件中的已檢查項目?
據(jù)了解,目前的目標(biāo)是使用帶有TreeListView的彈出式編輯器來編輯集合屬性,本文將為大家解釋此操作所需要的步驟。
1. GridControl不支持編輯使用FieldName綁定的集合屬性,您可以更改屬性聲明,以便它使用對象類型或使用Binding而不是FieldName。請參閱,讓我們使用第一個選項:
C#
public object SelectedPerils { get; set; } //... SelectedPerils = new List<Peril>(); //... ((List<Peril>)Portfolios[0].SelectedPerils).Add(Portfolios[0].Perils[0]); ((List<Peril>)Portfolios[1].SelectedPerils).Add(Portfolios[1].Perils[1]); ((List<Peril>)Portfolios[2].SelectedPerils).Add(Portfolios[2].Perils[0]);
XAML
<dxg:GridColumn FieldName="SelectedPerils" />
2. 我們建議使用LookUpEdit在彈出窗口中顯示GridControl,使用為其啟用多選功能,這是執(zhí)行此操作的預(yù)定義方法。由于您希望將其默認TableView替換為TreeListView,因此需要聲明CellTemplate和PopupContentTemplate:
XAML
<dxg:GridColumn FieldName="SelectedPerils"> <dxg:GridColumn.CellTemplate> <DataTemplate> <dxg:LookUpEdit DisplayMember="Name" ItemsSource="{Binding RowData.Row.Perils}" Name="PART_Editor"> <dxg:LookUpEdit.PopupContentTemplate> <ControlTemplate> <dxg:GridControl Name="PART_GridControl" SelectionMode="MultipleRow"> <dxg:GridControl.View> <dxg:TreeListView KeyFieldName="ID" ParentFieldName="ParentID" /> </dxg:GridControl.View> </dxg:GridControl> </ControlTemplate> </dxg:LookUpEdit.PopupContentTemplate> <dxg:LookUpEdit.StyleSettings> <dxg:MultiSelectLookUpEditStyleSettings /> </dxg:LookUpEdit.StyleSettings> </dxg:LookUpEdit> </DataTemplate> </dxg:GridColumn.CellTemplate> </dxg:GridColumn>
3. 您的編輯器應(yīng)該能夠選擇嵌套值,因此您需要使用,這就是為什么在模板中使用KeyFieldName和ParentFieldName屬性的原因。 否則,您的LookUpEdit將拒絕其ItemsSource之外的值,因為在那里使用 并打開了查找模式。
C#
public class Peril { public int ID { get; set; } public int ParentID { get; set; } = -1; //... } //... Perils = new List<Peril> { new Peril { Name = "Earthquake", ID = 0}, new Peril { Name = "EQ", ID = 10, ParentID = 0 }, new Peril { Name = "FF", ID = 11, ParentID = 0 }, new Peril { Name = "Hurricane", ID = 1}, new Peril { Name = "HU", ID = 12, ParentID = 1 }, new Peril { Name = "TC", ID = 13, ParentID = 1 }, new Peril { Name = "Tornado Hail", ID = 2}, new Peril { Name = "TH", ID = 14, ParentID = 2 }, new Peril { Name = "WS", ID = 15, ParentID = 2 }, };
4. 沒有使用屬性,但是將設(shè)置為MultipleRow,TreeListView的復(fù)選框不會影響其選擇。 必須使用自定義實現(xiàn)對其進行同步(例如,請參閱帶有TreeView - Get選中項的LookupEdit),TreeListView的選擇將自動發(fā)布到SelectedPerils屬性。
這是演示結(jié)果如以下截圖所示:
DevExpress技術(shù)交流群3:700924826 歡迎一起進群討論
本站文章除注明轉(zhuǎn)載外,均為本站原創(chuàng)或翻譯。歡迎任何形式的轉(zhuǎn)載,但請務(wù)必注明出處、不得修改原文相關(guān)鏈接,如果存在內(nèi)容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉(zhuǎn)載自:慧都網(wǎng)