在silverlight中将Dictionary's Value绑定到元素'

本文关键字:绑定 元素 Value 中将 silverlight Dictionary | 更新日期: 2023-09-27 18:08:11

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

Key存储UI元素的名称,value存储该元素的工具提示。

代码:

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中的指定元素?

在silverlight中将Dictionary's Value绑定到元素'

解决方案如下。

你需要在按钮中添加TextBLock来显示工具提示,所以你的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();
        }