访问XAML中的类变量

时间:2014-02-18 05:50:51

标签: c# wpf xaml

我有一个定义为:

的类
class Constants
{
   public static string settingsToolTip = "Settings";
}

我想将此字符串设置为按钮的工具提示,如:

<Button Name= "ButtonSettingsWindow" ToolTip="Settings" ToolTipService.ShowDuration="2000"/>

我希望它使用来自Constants类的字符串,而不是在XAML中对字符串“Settings”进行硬编码。我怎么能在WPF XAML中做到这一点?

2 个答案:

答案 0 :(得分:5)

您可以在XAML中使用 x:Static markup extension 访问类的静态成员。

<Button ToolTip="{x:Static local:Constants.settingsToolTip}"/>

确保在声明了Constant类的XAML文件( local )中添加了命名空间:

xmlns:local="clr-namespace:ActualNameSpace"

答案 1 :(得分:0)

您正在寻找的答案具有约束力。

示例:

代码背后:

 class Test
{
    public string test { get { return "Settings"; } }
}

/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
    public MainWindow()
    {
        InitializeComponent();
    }
}

XAML:

<Window x:Class="WpfApplication2.MainWindow"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    xmlns:y="clr-namespace:WpfApplication2"
    Title="MainWindow" Height="350" Width="525">
<Window.DataContext>
    <y:Test></y:Test>
</Window.DataContext>
<Grid>
    <Button Content="{Binding test}"></Button>
</Grid>

结果是一个显示“设置”的按钮:)