ComponentOne Combobox交互MVVM

时间:2013-08-21 11:01:07

标签: mvvm wpf-controls wpf-4.0 componentone

我正在使用MVVM模式使用ComponentOne WPF控件。

我的ViewModel中有以下内容:

 public ICommand ClientsEnter
        {
            get
            {
                if (this.m_ClientsEnter == null)
                {
                    this.m_ClientsEnter = new DelegateCommand<string>(ClientsLostFocusExecute, ClientsLostFocusCanExecute);
                }
                return m_ClientsEnter;
            }
        }

一个可观察的收藏品:

 public ObservableCollection<Client> Clients
        {
            get { return m_Clients; }
            set
            {
                m_Clients = value;
                RaisePropertyChanged("Clients");
            }
        }

在Xaml中我添加了一个ComponentOne组合框,我可以在其中输入ClientNameID并按Enter键以激活事件以执行ClientsEnter命令:

<Custom1:C1ComboBox  Grid.Row="2" Grid.Column="1" Height="24" Name="cmbClients" HorizontalAlignment="Left" VerticalAlignment="Center"
                ItemsSource="{Binding Clients, Mode=OneWay}" SelectedValuePath="ClientID" DisplayMemberPath="NameE" IsEditable="True"
                Text="Enter Client Name Or ID" SelectedValue="{Binding Path=Filter.ClientID, Mode=TwoWay}" MinWidth="150" Margin="0,2" Width="189">
              <i:Interaction.Triggers>
                <ei:KeyTrigger Key="Tab"  FiredOn="KeyUp" ActiveOnFocus="True" SourceName="cmbClients">
                  <i:InvokeCommandAction Command="{Binding ClientsEnter, Mode=OneWay}" CommandParameter="{Binding Text,ElementName=cmbClients}" CommandName="KeyDown"/>
                </ei:KeyTrigger>
              </i:Interaction.Triggers>
            </Custom1:C1ComboBox>

我需要知道为什么它不起作用,按下输入clientID消失后没有任何反应。即使text="Enter Client Name Or ID"也没出现!有什么想法吗?

1 个答案:

答案 0 :(得分:1)

在花了两天时间调查这个问题之后,我发现C1Combobox中有一个错误,因为我用telerik Comboxbox替换它并添加相同的触发器而不更改xaml中除控件之外的任何内容并且它工作正常。

最后,我不建议使用C1 wpf控件