Я новичок в мире WPF и только начал читать WPF. При чтении я обнаружил, что всякий раз, когда мы связываем некоторый Элемент со свойством в коде за этим свойством, оно всегда должно быть общедоступным, а DataContext должен быть установлен, даже если это свойство находится в файле xaml.cs. Но метод, подписанный на событие, может быть закрытым.
Например:
В следующем примере свойство SelectedCountryIndex является открытым, но метод Country_SelectionChanged является закрытым.
файл xaml:
<ComboBox Name="Countries" SelectedIndex="{Binding SelectedCountryIndex}" SelectionChanged="Country_SelectionChanged"/>
xaml.cs
public partial class MainWindow : Window
{
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
public int SelectedCountryIndex{ get; set; } = 0;
private void Country_SelectionChanged(object sender, SelectionChangedEventArgs e){}
}
Теперь в соответствии с этот пост Класс Mainwindow.xaml.cs является частичным, как класс MainWindow.xaml, следовательно, это прямо, что мы можем написать
Country.SelectionChanged + = Country_SelectionChanged, и теперь Country_SelectionChanged может быть закрытым.
Но почему этого не происходит с привязкой? Если мы устанавливаем свойство как общедоступное, то работает только код.