マップタイルの設定があります。メニューボタンを使用して更新しています。私はリリースビルドでエラーが発生したばかりの奇妙な状況に陥っています。コードは以下の通りである:リリースビルド時にのみプライベートセッターにエラーが発生する
ビューモデル
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'...
簡単な解決策、上記SelectedTile
プロパティにset
からprivate set
を変更します。
これはどうやって、デバッグ時やリリース中にエラーを投げていないのでしょうか?デバッグモードでこれがどのように動作していたのか分かりません。
これは自分自身で発生しました。私の問題は、アプリケーションがデバッグモードまたはリリースモードでビルドされているのではなく、デバッガがプロセスにアタッチされているかどうかということでした。 –