Я использую элемент управления ComboBox для установки целочисленного значения адреса физического устройства.ComboBox ItemSource связан со списком целых чисел, где первое значение «-1» указывает, что устройство не подключено.
Я бы хотел, чтобы значение «-1» отображалось как «NONE».Можно ли это сделать с помощью триггеров, чтобы он заменял текст в раскрывающемся списке и в самом ComboBox, если он был выбран?Я подумываю об использовании enums и атрибута Description, но я надеялся, что мне не нужно идти по этому пути.
Пример:

XAML:
<ComboBox Height="30"
ItemsSource="{Binding Path=AddressSelection}"
SelectedItem="{Binding Path=SelectedAddress}" />
Код:
public class MainWindowVM : INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public List<int> AddressSelection
{
get { return new List<int>() { -1, 1, 2, 3, 4 }; }
}
private int _selectedAddress;
public int SelectedAddress
{
get { return _selectedAddress; }
set
{
SetNotify(ref _selectedAddress, value);
Console.WriteLine("Selected address is {0}", value);
}
}
public void SetNotify<T>(ref T storage, T value, [CallerMemberName] string propertyName = null)
{
storage = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}