Я пытаюсь установить метод CanExecute, как только пользователь вводит информацию в ComboBox со связанным списком элементов. Я могу отключить кнопку с помощью CanAddCustomer (имя AddCustomer) без проблем, когда выбран существующий элемент; Отключение кнопки также работает, когда поле ввода пустое (selectedCustomer имеет значение null); но эти события, похоже, не захватывают свободный ввод в поле ввода
Несуществующий элемент, следует включить
- Отключено, потому что пусто,
- Отключено, потому что существующий клиент
- Должно быть включено, потому что не существует записи
WPF для поля со списком
<ComboBox
x:Name="Customers" Height="40"
DisplayMemberPath="CustomerName"
Controls:TextBoxHelper.UseFloatingWatermark="False"
Controls:TextBoxHelper.Watermark="Select a Customer"
IsEditable="True"
MaxDropDownHeight="125"
Margin="0 0 15 0"
Grid.Column="0"
/>
Данные в ViewModel:
private Customer _selectedCustomer ;
private string _customer;
public string Customer
{
get { return _customer; }
set {
_customer = value;
NotifyOfPropertyChange(() => CanAddCustomer);
}
}
public Customer SelectedCustomer
{
get { return _selectedCustomer; }
set {
_selectedCustomer = value;
NotifyOfPropertyChange(() => CanAddCustomer);
GetAllOrdersPerCustomer();
}
}
public bool CanAddCustomer
{
get
{
Customer cs = SelectedCustomer;
if (cs == null && string.IsNullOrEmpty(Customer))
{
return false;
} else if (cs != null ) {
return false;
} else
{
return true;
}
}
}
public void AddCustomer()
{
Debug.WriteLine("You cliked");
}
проблема известна мне, когда я отлаживаю проект, я вижу, что «SelectedCustomer» не срабатывает ... но ... как мне тогда ссылаться на текст в текстовом поле? Свойство public string Customer
было моей попыткой, но это только значение selectedItem