将组合框元素绑定到数据源
本文关键字:数据源 绑定 元素 组合 | 更新日期: 2023-09-27 18:31:23
我有一个组合框,它托管一个文本块子元素。我想将组合框中的文本块绑定到名为 ResultList 的属性。我尝试了下面的代码,但它不起作用。我错过了什么?
<ComboBox x:Name="Test" HorizontalAlignment="Left" Margin="79,42,0,0" VerticalAlignment="Top" Width="344"
IsEditable="True">
<ComboBox.Resources>
<system:Double x:Key="{x:Static SystemParameters.VerticalScrollBarWidthKey}">0</system:Double>
</ComboBox.Resources>
<ComboBox.ItemContainerStyle>
<Style TargetType="{x:Type ComboBoxItem}" >
<Setter Property="Background" Value="#FFFFFF"/>
<Setter Property="BorderThickness" Value="0" />
</Style>
</ComboBox.ItemContainerStyle>
<ComboBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Path=ResultList, Mode=OneWay}" DataContext="{Binding Path=ResultList, Mode=OneWay}" />
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
因此,总结所有评论:
您需要将列表绑定到comboBox
的ItemsSource
。
<ComboBox x:Name="Test" ItemsSrouce="{Binding ResultList}" ....>
并将ItemTemplate
中的TextBlock
设置为如下所示:
<TextBlock Text="{Binding Path=Age}" ..../>
<TextBlock Text="{Binding Path=Name}" ..../>
不能将
DataContext
和 Text
属性设置为相同的值:
"{Binding Path=ResultList, Mode=OneWay}"
你可以试试这个:
<TextBlock Text="{Binding, Mode=OneWay}" DataContext="{Binding Path=ResultList}" />
但这可能更好:
<TextBlock Text="{Binding Path=ResultList, Mode=OneWay}" />
当然,当您没有提供所有必要的信息时,很难回答,例如评论中提出的问题。