binden Ich versuche, den Schlüssel eines Wörterbuchs an eine Zeile des Rasters in einer Listbox zu binden, und den Wert des Dictionary an eine andere Zeile des Rasters zu binden. Der Typ des Schlüssels ist Book, eine Klasse, die geschrieben wurde, und der Typ des Werts ist int. Ich möchte die Elemente der Klasse und den Integer-Wert im Raster schreiben. Können Sie mir dabei helfen? Ich bin ziemlich verwirrt, wenn ich die itemsSource und den zu bindenden Datentyp festlege. danke für die hilfeDen Schlüssel und den Wert eines Dictionary in einer Listbox mit wpf
Edit: ich habe vergessen zu sagen, dass ich C# - wpf. =)
schickte ich das Wörterbuch als Itemssource und i angegeben, das Wörterbuch als Typ in Object Tag und versuchte, den Wert (int) durch diesen Code zu senden:
< TextBlock Text="{Binding Value, Mode=OneWay}" Grid.Row="1" Width="65" >
und die SelectedItem wurde als [myNameSpace.Book, 4] gezeigt, statt nur von 4.
BookListBox.ItemsSource = LibManager.Books;
das ist, was ich in Win schrieb dow.xaml.cs und Books ist eine BookList, wobei BookList eine Art Wörterbuch ist < Buch, int>.
und die XAML-Datei:
< ListBox Height="571" HorizontalAlignment="Left" Margin="444,88,0,0"
Name="BookListBox" VerticalAlignment="Top" Width="383" >
< ListBox.Resources>
<ObjectDataProvider x:Key="BookData"
ObjectType="{x:Type local:BookList}"/>
</ListBox.Resources>
< ListBox.ItemTemplate>
< DataTemplate>
< Border BorderThickness="2" BorderBrush="Black" Margin="5"
CornerRadius="5" Width="350" >
< Grid DataContext="{StaticResource BookData}" >
< Grid.ColumnDefinitions>
< ColumnDefinition/>
</Grid.ColumnDefinitions>
< Grid.RowDefinitions>
< RowDefinition/>
< RowDefinition/>
< /Grid.RowDefinitions>
< Label Content="count: " />
< TextBlock Text="{Binding Value, Mode=OneWay}"
Grid.Row="1" Width="65"/>
< /Grid>
< /Border>
< /DataTemplate>
< /ListBox.ItemTemplate>
< /ListBox>
gibt es ein weiteres Problem mit meinem code-- Ich kann nicht alle Gegenstände in listbox sehen. Ich meine, ich könnte die Werte von ListBox.SelectedItem
bekommen, konnte aber nicht in der Listbox sehen. daher kann ich nicht sicher sein, ob ich den Integer-Wert an den gewünschten Ort weitergeben könnte.
Also ich denke ich brauche auch Hilfe für dieses Problem zuerst ... Ich schreibe ein Etikett, dass ich von Hand schreiben, und ein anderes Etikett, das durch Datenbindung in der gleichen Zeile gefüllt werden sollte, aber ich kann nur die erste sehen Label, aber ich kann den Wert im Code dahinter erreichen.
Welche Sprache/Framework verwenden Sie? Es klingt wie .NET für mich, aber Sie sollten klären. – LukeH
Cemre, können Sie Ihren Code bitte mit uns teilen? –
keine Idee/Anregung/Hilfe? – cemregoksu