我有一个功能,可以从txt文件中读取一些数据,然后将数据写入我的项目中。
我的问题是我无法填写复选框,因为它们无法识别字符串。
例如
CheckBox1.IsChecked = File.ReadLines(filename).Skip(0).Take(1).First();
它说字符串不能转换成布尔值。
我的txt文件中的第一行在此示例中显然为假,因此输出不是问题。
为什么您不读取字符串中的值,如果此值等于True或False,则在比较此值之后,例如:
List<string> myLines = File.ReadLines("C:\\Temp\\MyFile.txt").ToList();
bool isChecked = false;
if (myLines?.Count > 0)
{
string myValue = myLines.FirstOrDefault();
if(!string.IsNullOrEmpty(myValue) && myValue.Equals("true", StringComparison.OrdinalIgnoreCase))
isChecked = true;
}
CheckBox1.Checked = isChecked;
像这样您的代码是干净安全的!
使用以下两种方法之一:
CheckBox1.IsChecked = bool.Parse(File.ReadLines(filename).Skip(0).Take(1).First());
CheckBox1.IsChecked = Convert.ToBoolean(File.ReadLines(filename).Skip(0).Take(1).First())
请注意,仅当文件中的文本始终仅为“ true”或“ false”,否则,请使用TryParse
代替
请参见此处以获取更多详细信息https://stackoverflow.com/a/49590872/559144