将组合框元素绑定到数据源

时间:2013-09-16 09:54:12

标签: c# wpf binding combobox textblock

我有一个组合框,它托管一个textblock子元素。我想将组合框内的文本块绑定到名为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>

2 个答案:

答案 0 :(得分:1)

所以,总结所有评论:

您需要将列表绑定到ItemsSource的{​​{1}}。

comboBox

并将<ComboBox x:Name="Test" ItemsSrouce="{Binding ResultList}" ....> 中的TextBlock设置为:

ItemTemplate

答案 1 :(得分:0)

您无法将DataContext Text属性设置为相同的值:

"{Binding Path=ResultList, Mode=OneWay}" 

你可以试试这个:

<TextBlock Text="{Binding, Mode=OneWay}" DataContext="{Binding Path=ResultList}" />

但这可能会更好:

<TextBlock Text="{Binding Path=ResultList, Mode=OneWay}" />

当然,如果您没有提供所有必要的信息,例如评论中提到的信息,就很难回答。