【发布时间】:2013-09-20 10:20:18
【问题描述】:
我有一个组合框,其中包含一个文本块子元素。我想将组合框中的文本块绑定到一个名为 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>
【问题讨论】:
-
你的
ItemsSource在哪里comboBox?我猜你会喜欢将ResultList绑定到ItemsSource。 -
什么对象有
ResultList属性?DataContext和/或ItemsSource如何在ComboBox上设置? -
是的,我可以绑定到 ItemSource,这很有效,但是我该如何绑定这个我的文本块?
-
我假设
ResultList是一个项目列表,因此将其绑定到文本块没有多大意义。如果您要做的是显示组合框中的每个项目,那么就像其他人指出的那样,您应该绑定ComboBox的ItemsSource。此外,如果您只是将其显示为纯文本,comboBox 会为您完成,无需使用DataTemplate... -
@Prof,您的意思是当您将
ItemsSource绑定到您的comboBox时,您不知道要绑定textblock什么?只需使用<TextBlock Text="{Binding}"/>
标签: c# wpf binding combobox textblock