Ключевое слово из сеттера, чтобы исправить проблему.
я есть настройка тайла карты, который я обновляю с помощью кнопки меню. У меня возникла странная ситуация, когда я только нажимал на ошибку при сборке релиза. Код выглядит следующим образом:
View-модель
private KnownTileSource _selectedTile;
public KnownTileSource SelectedTile
{
get { return _selectedTile; }
private set
{
_selectedTile = value;
...
OnPropertyChanged("SelectedTile");
}
}
Посмотреть
<Window ...
xmlns:predefined="clr-namespace:BruTile.Predefined;assembly=BruTile">
...
<MenuItem Header="_Bing Aerial" Command="{Binding ChangeTileCommand}" CommandParameter="{x:Static predefined:KnownTileSource.BingAerial}" IsChecked="{Binding Path=SelectedTile, Mode=TwoWay, Converter={local:EnumToBooleanConverter}, ConverterParameter=BingAerial}"/>
...
</Window>
Это все работало нормально в моей среде разработчика, но когда я сгенерировал сборку релиза, я получил следующее:
ошибка
System.InvalidOperationException: A TwoWay or OneWay ToSource binding cannot work on the read-only property 'SelectedTile'...
Простое решение, изменениеprivate set
вset
в вышеSelectedTile
свойство.
Так почему же это не выдает ошибку во время отладки, а только во время выпуска? Я не вижу, как это работало в режиме отладки.