ComboBox ItemSsource观察集合

时间:2014-05-15 07:15:46

标签: c# wpf combobox

我有一个组合框,其项目源绑定到观察集合,数据模板作为项目模板。当我点击组合框.value并且它没有在组合框中显示所选值的值时出现问题

以下是我的数据模板:

    <DataTemplate x:Key="ComboBoxTemplate">
            <StackPanel Orientation="Horizontal">
                <Rectangle Fill="{Binding ColorCode}" Width="30"  Height="15"/>
                <TextBlock Text="{Binding ColorName}" Margin="5,0,0,0"/>
            </StackPanel>

</DataTemplate>

以下是我的组合框:

    <ComboBox Name="cmbAccentColors" Grid.Column="1"  Width="130" Height="20" 
                               ItemsSource="{Binding Source={StaticResource ComboColorData}}"
                               ItemTemplate="{StaticResource ComboBoxTemplate}"
                              IsSynchronizedWithCurrentItem="True" MaxDropDownHeight="120"
                              SelectionChanged="cmbColors_SelectionChanged"
 >

    Private void cmbColors_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
        {
            if (!IsLoaded)
            {
                return;
            }

            MessageBox.Show(cmbAccentColors.SelectedItem.ToString());
        }

1 个答案:

答案 0 :(得分:0)

将DisplayMemberPath添加到组合框中。 DisplayMemberPath指定路径。

DisplayMemberPath =&#34; YourProperty&#34;;

这也是您访问所选项目的方式,

Private void cmbColors_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e)
{
string text = (sender as ComboBox).SelectedItem.Text;    
}