静态类作为WPF中XAML的资源

c3frrgcw  于 2023-05-30  发布在  其他
关注(0)|答案(2)|浏览(177)

我尝试使用一个静态类作为ResourceDirectory与StaticResources,但它不工作。
分类:

static class GlobalDefinitions
    {
        public const string Parameter = "Parameter";
    }

浏览次数:

xmlns:global="clr-namespace:Project.Global"

 <DataGridTextColumn Header="{Binding Source={global:GlobalDefinitions,Path=Parameter}"/>

有人知道为什么吗?
我尝试使用一个静态类作为ResourceDirectory与StaticResources,但它不工作。

t8e9dugd

t8e9dugd1#

使用x:Static标记扩展:

<DataGridTextColumn
    Header="{Binding Source={x:Static global:GlobalDefinitions.Parameter}}"/>
klh5stk1

klh5stk12#

我通常会将我的类声明为资源...
给定一个类:

public class MyClass
{
  // 
}

声明资源(这是App.xaml中的外观):

<Application.Resources>
  <ResourceDictionary>
      <myNamespace:MyClass x:Key="MyClass" />
  </ResourceDictionary>
</Application.Resources>

然后,您可以将其用作绑定源,例如:

<Window 
    DataContext="{Binding Source={StaticResource MyCLass}}"
    >
</Window>

WPF将根据需要创建类的示例以解析绑定。要使这种方法起作用,类必须有一个无参数的构造函数。
类“Locator”模式是这样工作的;您可以有基础静态成员,但它们需要由示例成员 Package 。

相关问题