首頁  >  文章  >  後端開發  >  分享PART_Editor的使用實例

分享PART_Editor的使用實例

零下一度
零下一度原創
2017-06-23 15:56:411707瀏覽

一、序言

      #在日常在的介面開發中,我們大多使用MVVM模式進行開發。通常情況下,一個PropertyGridControl或DataGrid的ItemsSource設定好,

       然後每一列綁定某一ItemsSource中的某一欄位就可以跑起來了。

       也有另一個情境:

           它的ViewModel為TempViewModel.cs;

##卷#       PropertyGridControl中的一個PropertyDefinition要重寫Template,它所綁定的資訊並不只有Model中的某個欄位

#       也為可能包含Model中的若干個欄位

,甚至

TempViewModel中的一些其它訊息,這個時候該如何操作?

 

二、實例Temp.xaml:

 <services:DockablePane.Resources>
        <ResourceDictionary>
             <DataTemplate x:Key="EditTemplate">
                <special:SpEdit x:Name="PART_Editor"/>  //这里是关键!!!!!!!!!!!!!!!
            </DataTemplate>
        </ResourceDictionary>
 </services:DockablePane.Resources>



<dxprg:PropertyGridControl 
                Margin="0" VerticalAlignment="Stretch" HorizontalAlignment="Stretch"SelectedObjects="{Binding Infos}" ShowProperties="WithPropertyDefinitions"ShowDescriptionIn="ToolTipAndPanel" ShowCategories="True" ExpandCategoriesWhenSelectedObjectChanged="True"ShowMenuButtonInRows="False" ShowToolPanel="False" ShowSearchBox="False" SortMode="Definitions">

 <dxprg:PropertyGridControl.PropertyDefinitions>
                        <!--通用-->
                        <dxprg:PropertyDefinition IsReadOnly="True" Path="Code"/>
                        <dxprg:PropertyDefinition IsReadOnly="True" Path="AProperty"/>
                        <dxprg:PropertyDefinition Path="BProperty"/>
                        <dxprg:PropertyDefinition Path="CProperty"/>
                        <dxprg:PropertyDefinition Path="DProperty"/>
                        <dxprg:PropertyDefinition Path="EProperty"  ContentTemplate="{StaticResource EditTemplate}"/>
 </dxprg:PropertyGridControl.PropertyDefinitions>
</dxprg:PropertyGridControl>

 

#在這裡,我們重寫的DataTemplate中的窗體名稱為:PART_Editor#這個名字特別重要,不能改其它的。

這樣我們就可以在SpEdit這個窗體中呼叫

TempViewModel

的全部訊息,因為這個時候TempViewModel#已經賦值給了

SpEdit
的DataContext的

某個屬性上,

##可能的情況是這樣的:

SpEdit.xaml.cs:#

var source = this.DataContext as RowData;if (source != null)
     _sourceData = (source.Definition.DataContext) as VM;

這樣,我們就把Temp.xaml的ViewModel傳給了SpEdit的_sourceData。  

三、小結###################### #       ############本文主要描述如何在重寫介面中取得來源UI中的ViewModel資訊。 PART_Editor是一個非常實用的隱藏方法。 ######

以上是分享PART_Editor的使用實例的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn