MVVM光绑定异常

时间:2016-08-04 03:35:18

标签: data-binding xamarin.ios mvvm-light

我在Xamarin.iOS应用程序中使用MVVM Light Toolkit的5.3.0版来创建共享库中ViewModels的数据绑定。绑定是

        _bindingList.Add(
            this.SetBinding(
                () => _sessionViewModel.ActiveSession.Swings.Count,
                () => _swingCountLabel.Text,
                fallbackValue: 0,
                targetNullValue: 0)
            .ConvertSourceToTarget(c => $"({c.ToString()})"));

The Swings是一个可观察的收藏品。 ActiveSession是一个可观察的属性。只要ActiveSession不为null就可以了。当ActiveSession设置为null时,将生成以下异常:

“System.Int32”类型的对象无法转换为“System.String”类型。

错误发生在MVVM Light函数名称'SetSpecialValues'中。我下载了源代码,看起来使用Fallback值的情况是在调用SetValue之前没有使用转换器。

以下类似的绑定工作正常(源和目标类型相同)。当ActiveSession为null时,它会正确显示“-----”。

        _bindingList.Add(
            this.SetBinding(
                () => _sessionViewModel.ActiveSession.Name,
                () => _sessionLabel.Text,
                fallbackValue: "-----",
                targetNullValue: "-----"));

支持这种类型的绑定还是我做错了什么?

由于

0 个答案:

没有答案