如何通过视图模型传递信息

时间:2014-07-22 14:17:13

标签: c# wpf mvvm

所以我的设置页面上有一个名为Test Database的按钮 我的目标是在单击该按钮时更改读取注册表,它将从虚拟数据库中读取。 我遇到的问题是,它存在两个不同的.cs文件,并且想知道如何将信息传递给另一个。

public static FBContext Get()
{
    if (ConnectionString == null)
    {
        var openSubKey = Registry.CurrentUser.OpenSubKey("SOFTWARE");
        if (openSubKey != null)
        {
            var registryKey = openSubKey.OpenSubKey("TestSoftware");
            if (registryKey != null)
               ConnectionString =  registryKey.GetValue("ctx").ToString();
        }
     }
     return new FBContext(ConnectionString);
}

我想将内部IF语句更改为类似的内容,其中将存在可通过不同视图访问的Global bool变量TestDatabase

if (registryKey != null)
{
    If(TestDataBase == false)        
        ConnectionString =  registryKey.GetValue("ctx").ToString();        
    else
        ConnectionString = "Test Database String";
}

1 个答案:

答案 0 :(得分:0)

首先,我认为您必须重新考虑在层或服务中组织您的应用程序。

至少你必须在表示和服务类之间分开:Viewmodels(在ASP.Net,Webforms或MVC中)不应该知道数据库访问细节。

实现分离使用依赖注入的常用方法。

说,你可以将静态类DBConfiguration作为

public static class DBConfiguation
    {
        string _connection = null;

        public string Connection {
            get
            {
                if (_connection == null)
                {
                    //... you load code
                }
                return _connection;
            }
            set
            {
                _connection = value;
            }

        }
    }

并始终使用该类访问连接字符串。