将字典的值绑定到silverlight中元素的工具提示

时间:2014-06-12 06:47:15

标签: c# silverlight-4.0

我有一个字典,其中键和值都是字符串类型。

键存储UI元素的名称,值存储该元素的工具提示。

代码:

static Dictionary<string, string> tooltips = new Dictionary<string, string>();
tooltips.Add("Add", "Adds the digits");
tooltips.Add("Multiply", "Multiply the digits");
tooltips.Add("Divide", "Divide the digits");

此词典包含在静态类中。

我想将这个字典绑定到包含按钮的xaml页面。任何人都可以告诉我如何将工具提示绑定到xaml中的指定元素?

1 个答案:

答案 0 :(得分:1)

以下是解决方案。

您需要在Button内添加TextBLock以显示Tooltip,因此您的XAML看起来像这样,

<Grid x:Name="LayoutRoot" Background="White">
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,64,0,0" VerticalAlignment="Top" Name="btnAdd" Width="75">
        <ToolTipService.ToolTip>
            <ToolTip>
                <TextBlock  x:Name="Add"></TextBlock>
            </ToolTip>
        </ToolTipService.ToolTip>
    </Button>
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,118,0,0" VerticalAlignment="Top" Name="btnMultiply" Width="75">
        <ToolTipService.ToolTip>
            <ToolTip >
                <TextBlock  Name="Multiply"></TextBlock>
            </ToolTip>
        </ToolTipService.ToolTip>
    </Button>
    <Button Content="Button" HorizontalAlignment="Left" Margin="230,91,0,0" VerticalAlignment="Top" Name="btnDivide" Width="75">
        <ToolTipService.ToolTip>
            <ToolTip >
                <TextBlock Name="Divide"></TextBlock>
            </ToolTip>
        </ToolTipService.ToolTip>
    </Button>
 </Grid>

这里显示工具提示

        tooltips.Add("Add", "Adds the digits");
        tooltips.Add("Multiply", "Multiply the digits");
        tooltips.Add("Divide", "Divide the digits");
        foreach (KeyValuePair<string, string> name in tooltips)
        {
            TextBlock tt = LayoutRoot.FindName(name.Key.ToString()) as TextBlock;
            tt.Text = name.Value.ToString();
        }
       foreach (KeyValuePair<string, string> name in tooltips)
        {
        TextBlock tt = LayoutRoot.FindName(name.Key.ToString()) as TextBlock;
        tt.Text = name.Value.ToString();
        }