小编Kar*_*arl的帖子

私有setter仅在发布版本上抛出错误

我有一个地图图块设置我正在通过菜单按钮更新.我有一个奇怪的情况,我只是在发布版本上遇到错误.代码如下:

视图模型

private KnownTileSource _selectedTile;
public KnownTileSource SelectedTile
{
    get { return _selectedTile; }
    private set
    {
        _selectedTile = value;
        ...
        OnPropertyChanged("SelectedTile");
    }
}
Run Code Online (Sandbox Code Playgroud)

视图

<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>
Run Code Online (Sandbox Code Playgroud)

这在我的开发人员环境中运行良好,但是当我生成发布版本时,我得到以下内容:

错误

System.InvalidOperationException: A TwoWay or OneWay ToSource binding cannot work on the read-only property 'SelectedTile'...

简单的解决方案,改变private setset上述SelectedTile财产.

那么为什么这不是在调试期间抛出错误而只是在发布期间?在调试模式下,我无法看到它是如何工作的.

c# wpf mvvm

5
推荐指数
1
解决办法
277
查看次数

标签 统计

c# ×1

mvvm ×1

wpf ×1