WPF:将字符串转换为 System.Windows.Visibility

MaC*_*Toc 2 c# wpf visual-studio-2013

目前我正在使用数据库,但我遇到了一个小问题。我有一个应用程序,在这个应用程序中,每个用户都可以将应用程序的某些部分设置为“不可见”,以便不再显示它们。我将每个用户的这些信息保存在数据库中,以便应用程序可以直接采用用户上次使用它时设置的任何更改或设置。在该数据库中,可见性属性保存为字符串。例如,我的数据库中保存了以下变量:

string str = Convert.ToString(System.Windows.Visibility.Visible);
Run Code Online (Sandbox Code Playgroud)

现在我再次启动我的应用程序并读取该变量,该变量应表示名为“grid”的网格的可见性属性,并设置此属性我想做的是这样的:

SqlDataReader reader = sqlCommand.ExecuteReader();

while (reader.Read())
{
grid.Visibility = reader.GetString(1);
}
Run Code Online (Sandbox Code Playgroud)

不幸的是,我得到了错误:无法将类型“字符串”隐式转换为 System.Windows.Visibility 有没有人有替代解决方案的想法或将字符串转换为可见性的可能性?

希望很清楚我想做什么,并提前感谢您的任何建议

ASh*_*ASh 5

System.Windows.Visibility是一个枚举,枚举有Parse从字符串中获取值的方法。解析返回object值,需要显式转换:

grid.Visibility = (System.Windows.Visibility)
 Enum.Parse(typeof(System.Windows.Visibility), reader.GetString(1));
Run Code Online (Sandbox Code Playgroud)