Bitte sehen Sie sich das Bild unten an. Dies ist eine Window
, wo ich mehrere TextBlock
s innerhalb einer Grid
platziert habe. Es ist eigentlich das Marketing-Team, das mich gezwungen hat, die Benutzeroberfläche so zu gestalten. Aber ich bin vor anderen Themen wieWie bindet man einen TextBlock-Wert mit einem anderen TextBlocks-Wert? Im selben Fenster?
I-Code haben die XAML
wie dies, wie ich kann nur die UI-Design erreichen, wenn ich die TextBlocks
auf diese Weise platzieren.
<TextBlock x:Name="BlueTextBlock"
Margin="100,10,0,0"
Foreground="Blue"
Text="{Binding ElementName=GridAlltextBlocks, Path=??? Mode=TwoWay}"/>
<Grid x:Name="GridAlltextBlocks">
<Grid.RowDefinitions>
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
<RowDefinition Height="40" />
</Grid.RowDefinitions>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Grid.Row="0" Grid.Column="0" Focusable="True" Text="Value 1"/>
<TextBlock Grid.Row="1" Grid.Column="0" Focusable="True" Text="Value 6"/>
<TextBlock Grid.Row="2" Grid.Column="1" Focusable="True" Text="Value 2"/>
<TextBlock Grid.Row="3" Grid.Column="3" Focusable="True" Text="Value 3"/>
<TextBlock Grid.Row="1" Grid.Column="1" Focusable="True" Text="Value 4"/>
<TextBlock Grid.Row="2" Grid.Column="3" Focusable="True" Text="Value 5"/>
</Grid>
Nun ist die Frage: Wie kann ich den Wert des BlueTextBlock
mit einem der Wert des textBlocks
innerhalb des Grid binden.
Nehmen wir an, ich habe den textBlock mit text = "Value 2
" ausgewählt, dann sollte der BlueTextBlock
Text auch Value 2
sein.
Wie kann ich das erreichen? Hier
Normalerweise haben Sie eine Eigenschaft in Ansichtsmodell, an die beide 'TextBox' und' TextBlock' haben ihre 'Text' Eigenschaft gebunden. Sie sprechen jedoch von Fokus (ausgewählt?) Und binden an ausgewählten Artikel. Verwenden Sie dann 'ItemsControl' (oder' ListBox'), weil sie 'SelectedItem' -Eigenschaft haben, an die Sie Ihren' TextBox.Text' binden können (eigentlich ist es wieder besser, eine Eigenschaft in ViewModel zu haben, die 'SelectedItem' ViewModel zu' Text 'Eigenschaft, die Sie binden). – Sinatr
Ja, ich kann, ich stimme dem zu, aber wenn ich das tue, wie kann ich diese ListBox-Elemente auf diese Weise platzieren? Für mich sollte die Benutzeroberfläche so sein, dass ich jede Art von Implementierung haben kann. :) ListBox-Elemente Kontrollelemente, die ich an eine Eigenschaft in ViewModel binden kann. Aber wie gestalte ich diese Benutzeroberfläche mit ListBox oder ListView? – Debhere
Um Layout wie auf Bild zu haben, verwenden Sie 'UniformGrid' als' ListBox.ItemsPanel', sehen Sie [diese Frage] (http://stackoverflow.com/q/21611004/1997232). Oder besser [diese nette Antwort] (http://stackoverflow.com/a/9559183/1997232) (es erstellt 2 Spalten, Sie brauchen 3). – Sinatr