1

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

2 回答 2

1

因此,总结所有评论:

您需要将列表绑定到ItemsSourceof comboBox

<ComboBox x:Name="Test" ItemsSrouce="{Binding ResultList}" ....>

并设置TextBlockItemTemplate

<TextBlock Text="{Binding Path=Age}" ..../> 
<TextBlock Text="{Binding Path=Name}" ..../> 
于 2013-09-16T10:18:39.630 回答
0

您不能将和DataContext 属性Text设置为相同的值:

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

你可以试试这个:

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

但这可能会更好:

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

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

于 2013-09-16T10:01:58.247 回答