DataTemplating绑定不正确

时间:2012-10-26 23:01:58

标签: wpf xaml

我有以下代码绑定到ToolTip DataTemplate中的属性:

<Window x:Class="WpfConcepts.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
       xmlns:telerikGrid="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.GridView"
    xmlns:telerikData="clr-namespace:Telerik.Windows.Data;assembly=Telerik.Windows.Data"
    xmlns:telerikGridview="clr-namespace:Telerik.Windows.Controls.GridView;assembly=Telerik.Windows.Controls.GridView"
    xmlns:telerikInput="clr-namespace:Telerik.Windows.Controls;assembly=Telerik.Windows.Controls.Input" Width="200" Height="480">
    <Grid>
        <Grid.ColumnDefinitions>  
            <ColumnDefinition Width="*"/>
        </Grid.ColumnDefinitions>
        <Grid.RowDefinitions>
            <RowDefinition Height="*"/>
        </Grid.RowDefinitions>
        <telerikGrid:RadGridView Grid.Column="0" Grid.Row="0" x:Name="FXRateGridView" ItemsSource="{Binding CarList}" ScrollViewer.HorizontalScrollBarVisibility="Visible" ScrollViewer.VerticalScrollBarVisibility="Visible" ColumnWidth="*" MinColumnWidth="50" AutoGenerateColumns="False">
            <telerikGrid:RadGridView.Columns>
                <telerikGrid:GridViewDataColumn>
                    <telerikGrid:GridViewDataColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding Name}">
                                <TextBlock.ToolTip>
                                    <ToolTip>
                                        <DataTemplate>
                                            <StackPanel>
                                                <TextBlock Text="{Binding Path=Colour}"/>
                                            </StackPanel>
                                        </DataTemplate>
                                    </ToolTip>
                                </TextBlock.ToolTip>
                            </TextBlock>
                        </DataTemplate> 
                    </telerikGrid:GridViewDataColumn.CellTemplate>
                </telerikGrid:GridViewDataColumn>
            </telerikGrid:RadGridView.Columns>
        </telerikGrid:RadGridView>
    </Grid>
</Window>

工具提示显示为“System.Window.DataTemplate”,这不是所需的效果,因为我期待Color属性值。 如果我在ToolTip中没有使用datatemplate,那么我得到正确的值,我假设我的用法DataTemplate不正确。

2 个答案:

答案 0 :(得分:1)

如果您想重复使用工具提示,请在Window Resources中创建一个实例并在任何需要的地方使用它,使用StaticResource这样的方式 -

<Window>
....
<Window.Resources>
   <ToolTip x:Key="ColourToolTip">
      <StackPanel>
          <TextBlock Text="{Binding Path=Colour}"/>
      </StackPanel>
   </ToolTip>
</Window.Resources>

在模板中使用此资源,如下所示 -

<TextBlock Text="{Binding Name}"
           ToolTip="{StaticResource ColourToolTip}">

答案 1 :(得分:0)

不需要DataTemplate,只需使用以下内容:

<ToolTip>
  <TextBlock Text="{Binding Path=Colour}"/>
</ToolTip>