1. はじめに
日常のインターフェース開発では、主に MVVM モデルを使用して開発します。通常の状況では、PropertyGridControl または DataGrid の iTemssource が設定され、各列は特定の itemssource 内の特定のフィールドにバインドされます。
しかし、別の状況があります:
インターフェイス Temp.xaml があり、その ViewModel が
ObservableCo に基づく ItemsSource を持つ PropertyGridControl があるとします。コレクション
「 TempViewModel、この時にどのように操作すればよいでしょうか?
2. 例
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
この名前は非常に重要なので、他の名前に変更することはできません。このようにして、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 に渡します。 3. まとめ
この記事では主に、書き換えインターフェイスでソース UI の ViewModel 情報を取得する方法について説明します。 PART_Editor は非常に実用的な隠しメソッドです。
以上がPART_Editorの使用例を共有するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。