在文本框和Silverlight中的工具提示之间的不同datacontext

时间:2012-07-06 17:33:00

标签: tooltip silverlight-5.0 domaindatasource

我正在尝试做一些显然容易的事情,但我不知道为什么不起作用。

这很好用:

<TextBox DataContext="{Binding ElementName=CORDONES_ESTATALESDomainDataSource, Path=Data}" Text="{Binding Path=DNA_A1}">
    <ToolTipService.ToolTip>
        <ToolTip Content="{Binding Path=DNA_A1}"/>
    </ToolTipService.ToolTip>
</TextBox>

我在工具提示中显示的内容与在文本框中显示的内容相同。相反:

<TextBox DataContext="{Binding ElementName=CORDONES_ESTATALESDomainDataSource, Path=Data}" Text="{Binding Path=DNA_A1}">
    <ToolTipService.ToolTip>
        <ToolTip DataContext="{Binding ElementName=TIPAJES_INTERMEDIOSDomainDataSource, Path=Data}" Content="{Binding Path=ALELOS_DNA_A2}"/>
    </ToolTipService.ToolTip>
</TextBox>

这没有任何表现。请注意,唯一的变化是工具提示具有不同的DataContext,因为domaindatasource也不同。

为什么会这样?我做错了什么或不可能做到?是因为不同的datacontexts?如果不是这样,我该怎么做?

由于

1 个答案:

答案 0 :(得分:0)

我找不到办法,所以我解决了以下问题。

<TextBox DataContext="{Binding ElementName=CORDONES_ESTATALESDomainDataSource, Path=Data}" Text="{Binding Path=DNA_A1}">
<ToolTipService.ToolTip>
    <ToolTip Name="DNA_A1Tooltip" Content=""/>
</ToolTipService.ToolTip>

我将内容设置为“”,并为工具提示指定名称。然后在域数据源的currentChanged事件中,我将programaticaly的值分配给它的内容:

DNA_A1Tooltip.Content = TIPAJES_INTERMEDIOSDomainDataSource.DataView.CurrentItem.ALELOS_DNA_A1()

我知道这不是最优雅的解决方案,但它有效。