По сути, привязка списка объектов к Combobox, когда отключено Для свойства объекта установлено значение true. Я хочу, чтобы цвет текста элемента Combobox был серым.
Вот что у меня есть:
Тип данных элемента поля со списком
Код: Выделить всё
public class ListItem
{
public ListItem(string text)
{
Text = text;
}
public string Text { get; set; }
public bool Disabled { get; set; }
}
Код: Выделить всё
public class MainPageViewModel : ReactiveObject
{
// In ReactiveUI, this is the syntax to declare a read-write property
// that will notify Observers, as well as WPF, that a property has
// changed. If we declared this as a normal property, we couldn't tell
// when it has changed!
private ListItem _selectedItem;
public ListItem SelectedItem
{
get => _selectedItem;
set => this.RaiseAndSetIfChanged(ref _selectedItem, value);
}
public List Items { get; set; }
public MainPageViewModel()
{
Items = new List
{
new ListItem ("A Cat"),
new ListItem ("A Dog"),
new ListItem ("A Mouse"),
new ListItem ("A Frog") { Disabled = true }
};
}
}
Код: Выделить всё
public MainPage()
{
InitializeComponent();
ViewModel = new MainPageViewModel();
this.WhenActivated(d =>
{
this.OneWayBind(ViewModel, vm => vm.Items, v => v.MyComboBox.ItemsSource)
.DisposeWith(d);
this.Bind(ViewModel, vm => vm.SelectedItem, v => v.MyComboBox.SelectedItem)
.DisposeWith(d);
});
}
Код: Выделить всё
Решение: похоже, в будущем Мне нужно протестировать пример кода, прежде чем его добавлять - в нашем реальном коде свойство Disabled установлено как доступное только для чтения, что должно мешать привязке WPF. Измените его на общедоступный и решите первую проблему: не видеть его серым! Казалось бы, если вы так долго смотрите на проблему, вы ослепляете, и это действительно так просто.
Что касается выделения серого цвета выбранным элементом, я попробую и посмотрим.
Подробнее здесь: https://stackoverflow.com/questions/734 ... reactiveui
Мобильная версия