2 nbspwoca NBSPWoCa 于 2014.08.20 21:13 提问

关于WPF中ComBox的问题
wpf

用下拉框做了一个按类别查找,可是取不到里面的文本。在xaml页面怎么写ComBox??在ViewModel.cs呢?

1个回答

sun_shine_jin
sun_shine_jin   2014.12.24 16:21

在XAML文件中的代码:

  <Grid x:Name="LayoutRoot" Background="White" DataContext="{Binding Source={StaticResource cb}}">
        <StackPanel HorizontalAlignment="Left">
            <ComboBox ItemsSource="{Binding Info}" Width="150" SelectedItem="{Binding ComboSelectedItem,Mode=TwoWay}" >
                <i:Interaction.Triggers>
                    <i:EventTrigger EventName="SelectionChanged">
                        <si:CallDataMethod Method="ComboBoxSelectionChanged"></si:CallDataMethod>
                    </i:EventTrigger>
                </i:Interaction.Triggers>
                <ComboBox.ItemTemplate>
                    <DataTemplate>
                        <TextBlock Text="{Binding Name}"
                                   Tag="{Binding Tag}" ></TextBlock>
                    </DataTemplate>
                </ComboBox.ItemTemplate>
            </ComboBox>
            <Button Margin="0 5 0 5" Content="Click" Command="{Binding}"></Button>
            <TextBlock Margin="0 5 0 5" Name="tb"></TextBlock>
        </StackPanel>
    </Grid>

在ViewModel中的代码:

 public class ComboBoxTemplateViewModel : ViewModelBase
    {
        private ObservableCollection<Student> _Info = new ObservableCollection<Student>();

        private Student _ComboSelectedItem = null;
        public ComboBoxTemplateViewModel()
        {
            _Info.Add(new Student() { Name = "ABC1", Tag = "1" });
            _Info.Add(new Student() { Name = "ABC2", Tag = "2" });
            _Info.Add(new Student() { Name = "ABC3", Tag = "3" });
            _Info.Add(new Student() { Name = "ABC4", Tag = "4" });
            _Info.Add(new Student() { Name = "ABC5", Tag = "5" });
            _Info.Add(new Student() { Name = "ABC6", Tag = "6" });
            _ComboSelectedItem = _Info[1];
        }

        public ObservableCollection<Student> Info
        {
            get
            {
                return _Info;
            }
        }

        public Student ComboSelectedItem
        {
            get
            {
                return _ComboSelectedItem;
            }
            set
            {
                _ComboSelectedItem = value;
                NotifyPropertyChanged("ComboSelectedItem");
            }
        }

        public ICommand GetSelectedData
        {
            get
            {
                return new RelayCommand(GetSelectedItemAndDisplayIt);
            }
        }

        private void GetSelectedItemAndDisplayIt()
        {

        }

        public void ComboBoxSelectionChanged()
        {
            MessageBox.Show("Item selected is : " + ComboSelectedItem.Name);
        }

    }
Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
wpf combox的绑定与设置选择项
<br />绑定的代码 :<br /><br /> private void bindType()<br />        {<br />            Code.Dao.XMType xt = new Code.Dao.XMType();<br />            System.Data.DataTable dt = xt.ListDB();<br />            cmbType.ItemsSource = dt.DefaultView;<br />            c
【WPF】 ComboBox控件的SelectionChanged事件的小问题
今早迁移一个WinForm项目到WPF,ComboBox控件的SelectedIndexChanged事件迁移为SelectionChanged事件后,出现了奇怪的栈错误。经查明是SelectionChanged事件在WPF页面加载完成之前会自动执行一次,我们并不希望这样以下方法可避免SelectionChanged事件的第一次执行:private void DevicesComboBox_Sel...
Wpf Combox 的两个注意点
Wpf Combo Box 如何保持选中不变并刷新数据源
WPF 中combox与datagrid绑定
-
WPF_MVVM中DataGrid列中使用ComBox绑定
WPF之MVVM中DataGrid中嵌入Combox,改变Combox可回传至绑定的实体
WPF 制作带TreeView的ComBox
1、xaml代码部分
combobox光标控制
有个家伙在csdn上弄了一个虚假软件,号称是combobox光标移到最后,还是个要花6分才能下载,下载一看竟然原来是搜狗的拼音输入,草,举报。 这个事情的缘起是这样的,一个edit里面剔除特定字符,比如是‘.’(小数点),就是不允许输入小数,可以在PreTranslateMessage函数中,判断GetFocus()->GetDlgCtrlID()==IDC_EDIT1,在键盘字符输入到控件前阻
WPF combobox 的两种绑定方式
1  传统的 disPlayMemberPath 的方式
继续聊WPF——获取ComboBox中绑定的值
千万不要认为WPF中的数据绑定会很复杂,尽管它的确比Winform程序灵活多了,但其本质是不变的,特别是ComboBox控件,我们知道在Winform中对该控件的有两个专为数据绑定而设定的属性——DisplayMenber和ValueMenber,分别绑定用于显示和用于存放用户选择值两个字段,最典型的应用类似于key-value形式的数据字段,如学生表中的学号(ID)和学生姓名。
WPF listbox combobox简单绑定
只要简单将combobox改成listbox,就可以用来给listbox绑定了