2017-10-16 43 views
5

我有一个地图瓷砖设置,我通过菜单按钮更新。我遇到了一个奇怪的情况,那就是在发布版本时只有一个错误。代码如下:私人二传手投掷错误只发布版本

视图模型

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属性更改private setset

那么为什么在调试过程中并且仅在发布过程中没有抛出错误呢?我看不到在调试模式下这是如何工作的。

+0

刚刚遇到这个我自己。对我而言,问题在于是否将调试器连接到进程,而不是如果应用程序是以调试模式还是发布模式构建的。 –

回答