WPF组合框与TextBlock双向绑定

时间:2013-10-04 06:59:24

标签: wpf binding combobox textblock

我创建了以下列表

List<cb> combolist = new List<cb>();

combolist.Add(new cb() { name = "Neo",bloodgroup = "O+ve"}); 

combolist.Add(new cb() { name = "meo", bloodgroup = "O" });

combolist.Add(new cb() { name = "bsv", bloodgroup = "B+ve" });

cboxnames.ItemsSource = combolist;

现在我正在创建一个组合框,使用项目模板

从上面的列表中获取数据
<ComboBox Margin="12,31,421,258" Name="cboxnames" IsEditable="False">
  <ComboBox.ItemTemplate>
     <DataTemplate>
             <TextBlock Text="{Binding name}"/>
         </DataTemplate>
        </ComboBox.ItemTemplate>   
</ComboBox>

现在我正在创建一个额外的文本块,显示在组合框中选择的项目

<TextBlock Height="28" HorizontalAlignment="Left" Background="LightGray" Margin="0,138,0,0" Text="{Binding UpdateSourceTrigger=PropertyChanged,ElementName=cboxnames,Mode=TwoWay,Path=SelectedItem.Content}" VerticalAlignment="Top" Width="191" />

问题是每当我从组合框中选择一个项目时,该项目没有显示在文本块中,请帮助!!!

2 个答案:

答案 0 :(得分:2)

<TextBlock Text="{Binding UpdateSourceTrigger=PropertyChanged,
                          ElementName=cboxnames,
                          Mode=TwoWay,Path=SelectedItem.name}"/>

使用此..希望它可以帮助你

答案 1 :(得分:1)

您好检查TextBlock绑定。它应该是SelectedItem.name而不是SelectedItem.Content

Text="{Binding UpdateSourceTrigger=PropertyChanged,ElementName=cboxnames,Mode=TwoWay,Path=**SelectedItem.name**}" 

我希望这会有所帮助。