1. Vorwort
Täglich Leben In der Schnittstellenentwicklung verwenden wir hauptsächlich das MVVM-Modell für die Entwicklung. Normalerweise wird die ItemsSource eines PropertyGridControl oder DataGrid eingerichtet,
und dann wird jede Spalte an ein Feld in einer ItemsSource gebunden und kann dann ausgeführt werden.
Aber es gibt noch eine andere Situation:
Angenommen, eine Schnittstelle Temp.xaml, Its ViewModel ist TempViewModel.cs;
Es gibt eine PropertyGridControl ItemsSource, die an ObservableCollection
Es kann auch mehrere Felder im Modell enthalten
oder sogareinige andere Informationen im TempViewModel. Wie sollte ich zu diesem Zeitpunkt vorgehen?
2. Beispiele
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>
Dieser Name ist sehr wichtig und kann nicht in einen anderen geändert werden.
Auf diese Weise können wir alle Informationen von TempViewModel in der Form
SpEditaufrufen, denn zu diesem Zeitpunkt TempViewModel Auf einer Eigenschaft von , die dem DataContext von SpEdit zugewiesen wurde, ist die mögliche Situation von wie folgt folgt:
SpEdit.xaml.cs:
Auf diese Weise übergeben wir das ViewModel von Die _sourceData von Temp.xaml SpEdit werden angegeben.
var source = this.DataContext as RowData;if (source != null) _sourceData = (source.Definition.DataContext) as VM;
3. Zusammenfassung
In diesem Artikel wird hauptsächlich beschrieben, wie die ViewModel-Informationen in der Quell-Benutzeroberfläche in der Rewrite-Schnittstelle abgerufen werden. PART_Editor ist eine sehr praktische versteckte Methode.
Das obige ist der detaillierte Inhalt vonTeilen Sie Anwendungsbeispiele von PART_Editor. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!