溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

PART_Editor的使用實(shí)例

發(fā)布時(shí)間:2021-03-11 15:14:44 來(lái)源:億速云 閱讀:170 作者:小新 欄目:編程語(yǔ)言

這篇文章將為大家詳細(xì)講解有關(guān)PART_Editor的使用實(shí)例,小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,希望大家閱讀完這篇文章后可以有所收獲。

一、前言

     在日常的界面開(kāi)發(fā)中,我們大多使用MVVM模式進(jìn)行開(kāi)發(fā)。通常情況下,一個(gè)PropertyGridControl或者DataGrid的ItemsSource設(shè)置好,

      然后每一列綁定好某一條ItemsSource中的某一個(gè)字段就可以跑起來(lái)了。

      但是也有另一種情況:

            假設(shè)一個(gè)界面Temp.xaml,它的ViewModel為T(mén)empViewModel.cs;

      有一個(gè)PropertyGridControl的ItemsSource以O(shè)bservableCollection<Model>綁定;

      PropertyGridControl中的一個(gè)PropertyDefinition要重寫(xiě)Template,它所綁定的信息并不只有Model中的某個(gè)字段,

      還可能包括Model中的若干個(gè)字段,甚至TempViewModel中的一些其它信息,這個(gè)時(shí)候該如何操作?

二、實(shí)例

Temp.xaml:

 <services:DockablePane.Resources>
        <ResourceDictionary>
             <DataTemplate x:Key="EditTemplate">
                <special:SpEdit x:Name="PART_Editor"/>  //這里是關(guān)鍵?。。。。。。。。。。。。。。?
            </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>

在這里,我們重寫(xiě)的DataTemplate中的窗體名稱(chēng)為:PART_Editor

這個(gè)名字特別重要,不能改其它的。

這樣我們就可以在SpEdit這個(gè)窗體中調(diào)用TempViewModel的全部信息,因?yàn)檫@個(gè)時(shí)候TempViewModel已經(jīng)賦值給了SpEdit的DataContext的某個(gè)屬性上,

可能的情況是這樣的:

SpEdit.xaml.cs:

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

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

關(guān)于“PART_Editor的使用實(shí)例”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,使各位可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),請(qǐng)把它分享出去讓更多的人看到。

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀(guān)點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI