Я работаю с элементами управления WPF ComponentOne с шаблоном MVVM.Взаимодействие с MVVM 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 Combo Box, где я могу ввести ClientName Или ID и нажмите клавишу ВВОД пожара Событие для выполнения команды ClientEnter:
<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="enter" 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>
Мне нужно знать, почему это делается не работает, после нажатия введите идентификатор клиента Исчезнет и ничего не произойдет. Даже текст = «Введите имя клиента или идентификатор» не появляется! Есть идеи? Обратите внимание, что когда я меняю ключ в космос, он работает, но он не принимает текст из combobox,
Вызываете ли вы свою команду, затем нажимаете на пользователя Enter? Можете ли вы также предоставить код для команды и DataContext Combobox (ваша модель взгляда) – Nikolay
Проведя 2 дня, исследуя эту проблему, я обнаружил, что в C1Combobox есть ошибка, поскольку я заменил ее на telerik Comboxbox и добавил тот же триггер, не меняя ничего в xaml, за исключением контроля, и он отлично работает. , наконец, я не рекомендую C1 wpf controls –