如何转换源类型'System.Nullable'目标类型'bool'
本文关键字:类型 bool Nullable 目标 System 转换 何转换 | 更新日期: 2023-09-27 18:08:03
也许这是一个简单的问题,但我找不到答案。使用XAML,我有这样的代码:
<CheckBox Grid.Column="2" Grid.Row="3" Height="23" HorizontalAlignment="Left" Name="tbIsInheriting" VerticalAlignment="Top" Width="191" Margin="0,4,0,0" />
所以在.cs
文件中,我需要得到这个复选框的值:输入:
res.IsInheriting = tbIsInheriting.IsChecked;
但是这是一个错误(不能转换源类型'System ')。
tblsInheriting.IsChecked.GetValueOrDefault();
CheckBox.IsChecked
返回一个bool?
,因为它可以是一个三向复选框。如果你的复选框是绝不是三个选项,我个人会使用:
res.IsInheriting = tblsInheriting.IsChecked.Value;
如果你的复选框不知何故在你没有预料到的情况下变成了三向,并且处于不确定状态,那将抛出一个异常。
否则,如果可能是三向的,我会使用:res.IsInheriting = tblsInheriting.IsChecked ?? defaultValue;
其中defaultValue
可能是true
或false
,这取决于您希望如何翻译"不确定"状态。
if (tbIsInheriting.IsChecked.HasValue == true)
res.IsInheriting = tbIsInheriting.IsChecked.Value;