У меня есть открытое свойство CLR, определенное в коде за окном WPF. Для этого свойства определен только сеттер.
public SomeCustomType SomeProperty {
set {
someValue = value;
}
}
У меня также есть ComboBox, определенный в XAML этого окна WPF. Этот ComboBox имеет два определенных объекта ComboBoxItem. Свойства содержимого объектов ComboBoxItem установлены на текст, который я хочу отобразить для этих элементов. Свойства тега объектов ComboBoxItem устанавливаются в статическое свойство CLR другого класса. SelectedValuePath установлен на «Tag» в ComboBox. У меня есть SelectedValue, привязанное к свойству CLR окна с режимом, установленным в OneWayToSource, и UpdateSourceTrigger, установленным в PropertyChanged.
<ComboBox SelectedValue="{Binding Registry, Mode=OneWayToSource, UpdateSourceTrigger=PropertyChanged}" SelectedValuePath="Tag" SelectedIndex="0">
<ComboBoxItem Content="Item1" Tag={x:Static someNamespace:SomeType.SomeStaticCLRProperty}" />
<ComboBoxItem Content="Item1" Tag={x:Static someNamespace:SomeType.SomeStaticCLRProperty}" />
</ComboBox>
То, что я хочу, чтобы это произошло: когда элемент выбран в ComboBox, свойство CLR в коде окна должно быть установлено на выбранное значение. Я не хочу, чтобы код всегда устанавливал значение ComboBox.
Но когда я запускаю это, я получаю исключение: «Метод Get Property не найден». То, как я это читаю, жалуется, что у меня нет геттера, определенного в свойстве CLR Window. Но я не думаю, что мне это нужно.
Я что-то здесь не так делаю?
Спасибо!
РЕДАКТИРОВАТЬ: я должен упомянуть, что добавление геттера делает это работает, но геттер получает удар всякий раз, когда сеттер делает. Кроме того, при первом вызове установщика (при загрузке окна) значение равно нулю. Но тогда он не будет вызываться снова, пока пользователь не выберет что-то. Разве я не должен получать действительное значение из выбранного значения в первый раз?