Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/326.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 在项目之间共享应用程序设置,并使用wpf中某个项目的数据绑定_C#_.net_Wpf_Xaml_Data Binding - Fatal编程技术网

C# 在项目之间共享应用程序设置,并使用wpf中某个项目的数据绑定

C# 在项目之间共享应用程序设置,并使用wpf中某个项目的数据绑定,c#,.net,wpf,xaml,data-binding,C#,.net,Wpf,Xaml,Data Binding,我正在开发一个包含多个项目的应用程序。让我们现在就考虑两个“代码>项目核心< /COD>和 PrimeCuvi < /P> 我需要在这些项目之间共享应用程序设置。我所做的是,在解决方案级别创建设置文件,并将这些设置作为链接添加到这些项目中(addexistingitem->addaslink) ProjectUI具有一些绑定到设置的uicontrol。默认值为的不同设置。和ProjectCore将值设置为Settings。默认值也设置为 现在,如果我使用Settings.Designer中每个项

我正在开发一个包含多个项目的应用程序。让我们现在就考虑两个“代码>项目核心< /COD>和<代码> PrimeCuvi < /P> 我需要在这些项目之间共享应用程序设置。我所做的是,在解决方案级别创建设置文件,并将这些设置作为链接添加到这些项目中(
addexistingitem
->
addaslink

ProjectUI
具有一些绑定到
设置的uicontrol。默认值为
的不同设置。和
ProjectCore
将值设置为
Settings。默认值也设置为

现在,如果我使用Settings.Designer中每个项目的Settings实例,它们将是两个不同的实例。因此,如果我在
ProjectCore
中设置一些值,绑定将无法工作

ProjectUI
依赖于
ProjectCore
,因此我不能只在ProjectUI中添加设置,然后在
ProjectUI
中编写一个包装器,然后使用它来设置
ProjectCore
中的值。这将创建循环依赖关系


现在,我如何才能共享和设置文件,并保持绑定为
ProjectUI

希望它可以帮助您,我只是创建了一个示例,在其中,我按照您所说的选取了两个项目,然后我将设置添加到核心项目中,并将其访问修饰符更改为public,并将其引用给UI,现在我可以在我的UI项目中访问这些设置

因为。e、 g

test.Settings1.Default.SettingTest = "test";
这里test是名称空间,Setting1是类,默认值是Setting1类的静态实例。 SettingTest是我设置的字符串类型。虽然SettingTest是只读的,但我将其在desginer.cs中的定义更改为

public string SettingTest {
            get {
                return ((string)(this["SettingTest"]));
            }
            set {
                this["SettingTest"] = value;
            }
        }

希望它可以帮助你们,我只是创建了一个示例,在其中,我像你们所说的那样选取了两个项目,然后我将设置添加到核心项目中,并将其访问修饰符更改为public,并将其引用给UI,现在我可以在我的UI项目中访问这些设置

因为。e、 g

test.Settings1.Default.SettingTest = "test";
这里test是名称空间,Setting1是类,默认值是Setting1类的静态实例。 SettingTest是我设置的字符串类型。虽然SettingTest是只读的,但我将其在desginer.cs中的定义更改为

public string SettingTest {
            get {
                return ((string)(this["SettingTest"]));
            }
            set {
                this["SettingTest"] = value;
            }
        }

您不能在ProjectCore中实现设置并将其引用给ProjectUI吗?这里的引用是什么意思?您的意思是在
ProjectCore
中创建它,并将其作为链接添加到“ProjectUI”中吗?如果您的意思是
ProjectCore
引用,那么它已经存在了,但是设置是一个内部类,所以不能直接使用它。您是否在设置中定义了访问修饰符以公开?您不能在ProjectCore中实现设置并将其引用给ProjectUI吗?这里的引用是什么意思?您的意思是在
ProjectCore
中创建它,并将其作为链接添加到“ProjectUI”中吗?如果您的意思是
ProjectCore
引用,那么它已经存在了,但是设置是一个内部类,所以不能直接使用它。您是否在设置中定义了访问修饰符到public我认为更改自动生成类的访问修饰符是不明智的。不需要public在另一个程序集中访问它,默认情况下它是内部的,您可以毫不犹豫地更改它Yeah看起来是目前唯一的解决方案我不认为更改自动生成类的访问修饰符是明智的。在另一个程序集中访问它不需要公共程序,默认情况下它是内部的,您可以毫不犹豫地更改它Yeah看起来是目前唯一的解决方案