У меня странное поведение при использовании WPF RibbonComboBox. При запуске приложения RibbonComboBox не отображает исходное выбранное значение.
Это мой XAML
using System.Collections.ObjectModel;
using System.ComponentModel;
using System.Windows;
namespace WpfApp1
{
public partial class MainWindow : Window, INotifyPropertyChanged
{
public event PropertyChangedEventHandler PropertyChanged;
public MainWindow()
{
InitializeComponent();
MyItems =
[
new MyItem() { Text = "Val 0", Value = 0 },
new MyItem() { Text = "Val 1", Value = 1 },
new MyItem() { Text = "Val 2", Value = 2 },
];
// Pre-Select Value 1
MySelectedValue = 1;
DataContext = this;
}
public ObservableCollection MyItems { get; private set; }
public int _mySelectedValue;
public int MySelectedValue
{
get => _mySelectedValue;
set
{
_mySelectedValue = value;
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MySelectedValue)));
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MySelectedText)));
}
}
public string MySelectedText
{
get => $"Value is {MySelectedValue}";
}
}
public class MyItem
{
public string Text { get; set; }
public int Value { get; set; }
}
}
У меня странное поведение при использовании WPF RibbonComboBox. При запуске приложения RibbonComboBox не отображает исходное выбранное значение. Это мой XAML [code]
[/code] Это код окна и модель представления [code]using System.Collections.ObjectModel; using System.ComponentModel; using System.Windows;
namespace WpfApp1 { public partial class MainWindow : Window, INotifyPropertyChanged { public event PropertyChangedEventHandler PropertyChanged;
public MainWindow() { InitializeComponent();
MyItems = [ new MyItem() { Text = "Val 0", Value = 0 }, new MyItem() { Text = "Val 1", Value = 1 }, new MyItem() { Text = "Val 2", Value = 2 }, ];
// Pre-Select Value 1 MySelectedValue = 1;
DataContext = this; }
public ObservableCollection MyItems { get; private set; }
public int _mySelectedValue; public int MySelectedValue { get => _mySelectedValue; set { _mySelectedValue = value; PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MySelectedValue))); PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(nameof(MySelectedText))); } }
public string MySelectedText { get => $"Value is {MySelectedValue}"; } }
public class MyItem { public string Text { get; set; } public int Value { get; set; } } } [/code] Проблема: [code]MySelectedValue[/code] предварительно установлено значение 1, но поле со списком остается пустым. Что мне не хватает?