Ich muss zwei Steuerelemente erstellen, die die gleiche Menge an Elementen enthalten (eine dynamische Menge), das erste Steuerelement stellt die Schlüssel dar, das zweite die Werte.Verbindung Breite/Höhe der Zelle in zwei verschiedenen Steuerungen?
Ich brauche es so, dass wenn der Benutzer die obere Spaltenbreite ändert, sollte es die gleiche Spalte in der unteren Reihe (der Werte) beeinflussen. Hier
ist ein Beispiel, was ich will:
<Window
DataContext="{Binding RelativeSource={RelativeSource Self}}"
x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Window.Resources>
<ItemsPanelTemplate x:Key="ItemsPanelTemplate">
<VirtualizingStackPanel Orientation="Horizontal"/>
</ItemsPanelTemplate>
</Window.Resources>
<StackPanel>
<ItemsControl ItemsSource="{Binding Keys}"
ItemsPanel="{StaticResource ItemsPanelTemplate}"/>
<ItemsControl Grid.Row="1" ItemsSource="{Binding Values}"
ItemsPanel="{StaticResource ItemsPanelTemplate}"/>
</StackPanel>
</Window>
Imports System.Collections.Specialized
Class MainWindow
Private Sub Window_Loaded(ByVal sender As Object,
ByVal e As RoutedEventArgs) Handles MyBase.Loaded
DataContext =
New StringDictionary From
{
{"key1", "value1"},
{"key2", "value2"},
{"key3", "value3"},
{"key4", "value4"}
}
End Sub
End Class
Ergebnis:
Noch einmal, ich möchte ein zu schaffen, um der Lage sein, Datagrid-like Steuerung, die sogar Zellgrenzen unterstützt, und Zellenbreiten und -höhen sollten mit der anderen Steuerung verbunden sein ls Breite + erlauben Größe zu ändern.
Ich bevorzuge es, Xamly getan werden. Hinweis: Es handelt sich um ein benutzerdefiniertes Steuerelement, sodass ich bei Bedarf entsprechende Eigenschaften angeben kann. Bedenken Sie jedoch, dass die Höhe und Breite der Zellen dynamisch und individuell für bestimmte Spalten/Reihen sein muss.
In Bezug auf this Frage, ich habe es auf eine etwas andere Art und Weise (mit einem dritten Steuerelement für Zellen), aber die Frage ist immer noch die gleiche, möchte ich die Höhe Breite der Spalten und Zellen dynamisch sein, und Geben Sie dem Benutzer die Möglichkeit, die Größe zu ändern und sich gegenseitig zu beeinflussen.
UPDATE
decyclone's answer etwas, das ich umsetzen würde gerne, aber ich versuchte, das Beispiel, das er Einstellung vorgesehen, um die ItemsControl
Grid.IsSharedSizeScope
Eigenschaft auf true s, aber es hat nicht funktioniert, hier ist das Ergebnis (geerntete):
Ist es möglich, eine gemeinsame Größe Umfang zwischen zwei verschiedenen Kontrollen anzuwenden?
Müssen Sie zwei separate 'ItemsControls' verwenden? Wenn Sie die Breite und Höhe der Zellen gleich halten wollen, warum verwenden Sie nicht ein einzelnes 'ItemsControl' mit zwei Zeilendaten' ItemTemplate'? – decyclone
@decyclone, ja. Ich dachte, dass ich separate "ItemControls" verwenden muss, da sich mein spezielles Szenario etwas von dem obigen Beispiel unterscheidet. Ich habe Spalten und Zeilen dynamisch automatisch generiert (siehe [link] (http: // stackoverflow.com/questions/4251183/wpf-zwei-dimensionale-datagrid-listview "WPF zweidimensionale DataGrid/ListView?"), und ich möchte die Zellen ItemsSource getrennt bleiben, aber immer noch verbunden, solange es Zellgröße betrifft. – Shimmy
Haben Sie überlegt, 'Shared Size' mit' SharedSizeGroup' und 'Grid.IsSharedSizeScope' zu verwenden? – decyclone