我想将字典的键绑定到ListBox中的一行,将字典的值绑定到另一行。键的类型是Book,这是我编写的一个类,值的类型是int。我想在网格中写入类的元素和整数值。你能帮我吗?我对确定itemsSource和要绑定的数据类型感到很困惑。谢谢帮忙。
编辑:我忘了说我正在使用C# - WPF. =)
我将字典作为itemsSource发送,并在objectdataprovider标记中指定字典类型,并尝试使用以下代码发送值(int):
因此,我认为我首先需要解决这个问题...我手写了一个标签,另一个标签应该在同一行中通过数据绑定填充,但我只能看到第一个标签,但我可以在后台代码中访问该值。
编辑:我忘了说我正在使用C# - WPF. =)
我将字典作为itemsSource发送,并在objectdataprovider标记中指定字典类型,并尝试使用以下代码发送值(int):
< TextBlock Text="{Binding Value, Mode=OneWay}" Grid.Row="1" Width="65" >
选定项显示为[myNameSpace.Book, 4]而不是仅仅是4。
BookListBox.ItemsSource = LibManager.Books;
这是我在 Window.xaml.cs 中编写的代码,其中 Books 是一个 BookList,而 BookList 是一个 dictionary<Book, int> 类型。
以及 XAML 文件:
< 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>
我的代码还有一个问题-- 我看不到列表框中列出的项目。我的意思是,我可以通过 ListBox.SelectedItem
获取值,但无法在列表框中看到。因此,我不能确定是否能将整数值传递到我想要的位置。因此,我认为我首先需要解决这个问题...我手写了一个标签,另一个标签应该在同一行中通过数据绑定填充,但我只能看到第一个标签,但我可以在后台代码中访问该值。