C# WPF-将窗口标题绑定到其他项目公共设置
显然我喜欢把我的生活复杂化,但我觉得这是值得的 我有一个包含多个WPF项目的解决方案(每个项目都构建到自己的应用程序中:服务器、客户端等)。我希望在一个地方有一些设置(主要是标签,所以当我更改名称时,我不必在多个文件中找到它),所以我在it Properties.settings和这些位置(ServerName、ClientName)创建了项目“Common” 现在在Server.main窗口中,我想将Title属性设置为Common.Properties.Default.ServerName。当然是XAML。不幸的是,我不知道该怎么办 我在某处发现:C# WPF-将窗口标题绑定到其他项目公共设置,c#,.net,wpf,xaml,data-binding,C#,.net,Wpf,Xaml,Data Binding,显然我喜欢把我的生活复杂化,但我觉得这是值得的 我有一个包含多个WPF项目的解决方案(每个项目都构建到自己的应用程序中:服务器、客户端等)。我希望在一个地方有一些设置(主要是标签,所以当我更改名称时,我不必在多个文件中找到它),所以我在it Properties.settings和这些位置(ServerName、ClientName)创建了项目“Common” 现在在Server.main窗口中,我想将Title属性设置为Common.Properties.Default.ServerName。
<ObjectDataProvider x:Key="odpsettings" ObjectType="{x:Type l:Properties.Settings}"></ObjectDataProvider>
基本上,它不起作用,我不知道从哪里开始…问题是不允许执行类似于
{x:Static common:Properties.Default.ServerName}
的操作,但是只使用{x:Static common:Properties.Default}
就可以了
因此,您只需将绑定源设置为{x:Static common:Properties.Default}
,并在绑定路径中指定请求的键,从而避免整个不受支持的嵌套类型问题:
<Window Title="{Binding Source={x:Static common:Properties.Default}, Path=ServerName}">
属性是从设计器自动生成的,因此在代码中我将其称为:Common.Properties.Default.ServerName,所以在XAML:Title=“{x:Static Common:Properties.Default.ServerName}”中,但我得到:嵌套类型不受支持。我可以使这些属性成为具有静态属性的自定义类,但也许我没有这样做?它起作用了!非常感谢你。现在,为了让它正常工作,我必须对xmlns:xmlns:common=“clr namespace:common;assembly=common”做一个小改动
<Window Title="{Binding Source={x:Static common:Properties.Default}, Path=ServerName}">