Benutzer mit den meisten Antworten
WPF XAML

Frage
-
Hallo zusammen,
ich bekomme es nicht raus wieso es nicht so geht wie im Lehrbuch steht.
Ich möchte gerne TextBox1, TextBox2 und TextBox3 an SelectedItem der ListBox binden.
Es tut nicht. Mag jemand mal schauen wieso?
Danke und Gruss
Peter<Window x:Class="Mitarbeiterliste.MainWindow" xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" Title="Mitarbeiter" Height="300" Width="350"> <DockPanel x:Name="DockPanel1"> <StackPanel DockPanel.Dock="Bottom" Height="Auto" HorizontalAlignment="Right" Orientation="Horizontal" Width="342"> <Button Width="80" Margin="3">OK</Button> <Button Width="80" Margin="3" Click="Button_Click">Beenden</Button> <Button x:Name="buttonForm" Content="Form" Width="77" Margin="3" Click="buttonForm_Click"/> </StackPanel> <Grid DockPanel.Dock="Bottom" Height="Auto" RenderTransformOrigin="0.501,0.086"> <Grid.ColumnDefinitions> <ColumnDefinition Width="171" /> <ColumnDefinition Width="37*" /> <ColumnDefinition Width="19*"/> <ColumnDefinition Width="115*"/> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition /> <RowDefinition Height="11"/> </Grid.RowDefinitions> <CheckBox Margin="2" Grid.Row="0" Grid.Column="0">Chef</CheckBox> <RadioButton Margin="2" Grid.Row="0" Grid.Column="1" Grid.ColumnSpan="3">Frau</RadioButton> <CheckBox Margin="2" Grid.Row="1" Grid.Column="0">Angestellter</CheckBox> <RadioButton Margin="2" Grid.Row="1" Grid.Column="1" IsChecked="True" Grid.ColumnSpan="3">Herr</RadioButton> <TextBox x:Name="textBox1" Grid.Row="0" Grid.Column="3" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalContentAlignment="Stretch"> <TextBox.Text> <Binding ElementName="Grid1.listBox1" Path="SelectedItem.Content" /> </TextBox.Text> </TextBox > <TextBox x:Name="textBox2" Text="{Binding ElementName=listBox1, Path=SelectedItem.Content}" Grid.Row="1" Grid.Column="3" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalContentAlignment="Stretch"/> </Grid> <Grid x:Name="Grid1"> <Grid.ColumnDefinitions> <ColumnDefinition Width="2*" /> <ColumnDefinition Width="*" /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition /> <RowDefinition Height="11"/> </Grid.RowDefinitions> <Label Grid.Row="0" Grid.Column="0" Background="Black" Foreground="WhiteSmoke">Liste aller Mitarbeiter</Label> <ListBox x:Name="ListBox1" Margin="5,5,5,33" Grid.Row="1" Background="WhiteSmoke" SelectionChanged="ListBox1_SelectionChanged"> <ListBoxItem>Peter Müller</ListBoxItem> <ListBoxItem>Andreas Fischer</ListBoxItem> <ListBoxItem>Gernot Haltmann</ListBoxItem> <ListBoxItem>Franz Schulze</ListBoxItem> <ListBoxItem>Beate Meier</ListBoxItem> </ListBox> <StackPanel Grid.Row="1" Grid.Column="1"> <Button Margin="5">Neu ...</Button> <Button Margin="5">Löschen</Button> <TextBox x:Name="textBox" Height="23" TextWrapping="Wrap" Text="TextBox"/> </StackPanel> <TextBox x:Name="textBox3" HorizontalAlignment="Left" Height="23" Margin="10,126,0,0" Grid.Row="1" TextWrapping="Wrap" VerticalAlignment="Top" Width="191"> <TextBox.Text> <Binding ElementName="listBox1" Path="SelectedItem.Content" /> </TextBox.Text> </TextBox> </Grid> </DockPanel> </Window>
Antworten
-
Hallo Peter,
In XAML wird auf Groß- und Kleinschreibung geachtet. Dein Control heißt ListBox1, du willst aber immer listBox1 anbinden.
Bei textBox1 kommt noch hinzu, dass du als ElementName wirklich nur den Namen eines Controls angeben darfst. Grid1.listBox1 müsste listBox1 (bzw. ListBox1) sein.
PS: Ist dir die Kurzschreibweise von Bindings bekannt?
<TextBox x:Name="textBox1" Grid.Row="0" Grid.Column="3" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" Text="{Binding SelectedItem.Content, ElementName=listBox1}"/>
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert peter haus Dienstag, 1. Dezember 2015 07:11
Alle Antworten
-
Hallo Peter,
In XAML wird auf Groß- und Kleinschreibung geachtet. Dein Control heißt ListBox1, du willst aber immer listBox1 anbinden.
Bei textBox1 kommt noch hinzu, dass du als ElementName wirklich nur den Namen eines Controls angeben darfst. Grid1.listBox1 müsste listBox1 (bzw. ListBox1) sein.
PS: Ist dir die Kurzschreibweise von Bindings bekannt?
<TextBox x:Name="textBox1" Grid.Row="0" Grid.Column="3" TextWrapping="Wrap" VerticalAlignment="Top" HorizontalContentAlignment="Stretch" Text="{Binding SelectedItem.Content, ElementName=listBox1}"/>
Tom Lambert - .NET (C#) MVP
Wozu Antworten markieren und für Beiträge abstimmen? Klicke hier.
Nützliche Links: .NET Quellcode | C# ↔ VB.NET Konverter | Account bestätigen (Verify Your Account)
Ich: Webseite | Code Beispiele | Facebook | Twitter | Snippets- Als Antwort markiert peter haus Dienstag, 1. Dezember 2015 07:11