2010-04-12 155 views
0

我寫了一個附加屬性,其中存儲了幫助文本。 此幫助文本顯示在主窗口的右側。這工作正常。綁定到附加屬性

現在,我想爲每個控件添加一個工具提示。工具提示的內容應與幫助文本擴展名相同。

的XAML代碼:

<ListView ctrl:ListViewLayoutManager.Enabled="true" 
      x:Name="ListViewSources" 
      ItemsSource="{Binding SourceItems}" 
      ItemContainerStyle="{DynamicResource ListViewItemStyleAlternate}" 
      Height="150" 
      MinWidth="350" 
      Helper:HelpExtension.IsControl="true" 
      Helper:HelpExtension.HelpText="{x:Static strings:GUIResource.HelpProfilesSourcesDescriptionText}" > 
    <ListView.ToolTip> 
     <ToolTip Style="{DynamicResource Own_TooltipStyle}"></ToolTip> 
    </ListView.ToolTip> 

而現在的風格代碼:

<Style x:Key="Own_TooltipStyle" TargetType="{x:Type ToolTip}"> 
    <Setter Property="Background" Value="LightYellow"/> 
    <Setter Property="Template"> 
     <Setter.Value> 
      <ControlTemplate TargetType="{x:Type ToolTip}"> 
       <Grid> 
        <TextBlock Text="{Binding Path=Helper:HelpExtension.HelpText, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" /> 
       </Grid> 
      </ControlTemplate> 
     </Setter.Value> 
    </Setter> 
</Style> 

如果我運行該程序,我得到了綁定錯誤:

System.Windows.Data Error: 39 : BindingExpression path error: 'Helper:HelpExtension' property not found on 'object' ''ListView' (Name='ListViewSources')'. BindingExpression:Path=Helper:HelpExtension.HelpText; DataItem='ListView' (Name='ListViewSources'); target element is 'TextBlock' (Name=''); target property is 'Text' (type 'String')

有誰知道如何將TextBlock綁定到Helper的內容:HelpExternsion.HelpText?

+0

風格的代碼丟失。請通過編輯您的帖子來添加它。 – gehho 2010-04-12 14:39:10

+0

我假設你的意思是附加屬性,而不是標記擴展... – 2010-04-12 14:47:25

回答

0

只要把周圍的附加屬性名稱括號:

<TextBlock Text="{Binding Path=(Helper:HelpExtension.HelpText), RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListView}}}" /> 
0

你的意思是結合附加屬性?在這種情況下,您需要額外的括號:

{Binding Path=(Helper:HelpExtension.HelpText), ... 

例如,請參見here