已编译的“绑定到IsChecked”复选框

Sha*_*iar 0 c# xaml winrt-xaml windows-10 windows-10-mobile

我的清单中有CheckBoxes,我想使用已编译的绑定来绑定IsChecked属性...

所以我尝试了这个:

<DataTemplate x:DataType="local:RDO">
     <StackPanel Orientation="Horizontal">
        <CheckBox Content="{x:Bind Content}" IsChecked="{x:Bind Check}"/>
     </StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)

我的模型类是这样的:

class RDO {
    public string Content { get; set; }
    public Boolean Check { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

但它不起作用并返回错误提示

严重性代码说明项目文件行错误无效的绑定路径'Check':如果没有转换器,则无法将类型'System.Boolean'绑定到'System.Nullable(System.Boolean)'

我该如何解决?

和Boolean和Nullable(Boolean)有什么区别?

bas*_*h.d 5

您的模型必须实现产权Check喜欢

 class RDO {
public string Content { get; set; }
public Boolean? Check { get; set; }
}
Run Code Online (Sandbox Code Playgroud)

看到?Boolean??Nullable是值类型(struct)的包装,因此它们可以具有值null(默认情况下不能具有值类型)。在特定情况下,这是使用绑定功能的要求。

进一步研究:

https://msdn.microsoft.com/zh-CN/library/1t3y8s4s.aspx

  • 别客气!但是请注意,您特定的“ Nullable”现在可以具有除“ true”或“ false”之外的其他值!现在也可以是“ null”,所以请不要忘记。 (2认同)