2017-10-24 14 views
0

とツールチップを定義します。これは、私のDodel次のとおりです。は、いくつかの結合特性

public string Name { get; set; } 
public string Id { get; set; } 
public string Age { get; set; } 
public string Description { get; set; } 

これは私のListViewコラムです:

<GridViewColumn Header="Name"> 
     <GridViewColumn.CellTemplate> 
      <DataTemplate> 
        <TextBlock x:Name="textBlock" 
           Text="{Binding Description}" 
           ToolTip="{Binding Description}"/> 
      </DataTemplate> 
     </GridViewColumn.CellTemplate> 
    </GridViewColumn> 

だから場合には、私は例えば、私のToolTipすべての私のプロパティで見てみたいです。

答えて

1

は、私がそのために行われていたものです:

<DataTemplate> 
    <DataTemplate.Resources> 
     <ToolTip x:Key="Tip"> 
      <TextBlock> 
       <Run Text="{Binding Name}"/> 
       <LineBreak/> 
       <Run Text="{Binding Age, StringFormat='Age: {0}'}"/> 
      </TextBlock> 
     </ToolTip> 
    </DataTemplate.Resources> 
    <TextBlock Text="{Binding Description}" ToolTip="{StaticResource Tip}"/> 
</DataTemplate> 

私はあなたが完全にカスタマイズして、他の後に名前やその他のプロパティを上にバインドすることができますRunsを使用しました。

+0

どこにこのDataTemplateを配置する必要がありますか? – user979033

+0

あなたの投稿を見て、 'DataTemplate'を私のものに置き換えてください。その後、あなたの 'Dodel'に合わせてBindingを変更してください。 – XAMlMAX

+0

私の更新された回答を参照してください。 – XAMlMAX

1

なぜ新しい文字列型プロパティをモデルに追加しないのですかそれらのすべてをコンストラクタで結合します。

本当にこのようにしたい場合はthisが役に立ちます。ここで

+1

また、 'ToolTip.Template'をたとえば' StackPanel'に変更し、複数の 'TextBlocks'をそれに入れてもいいですが(別のプロパティにバインドされています)、正直言ってモデルの新しいプロパティを作成する方がはるかにクリーンですソリューションの維持が容易です。 –

+0

他のコントローラでこのToStringを使用しているため、別のTo.Stringを追加したくない場合は、この複数のTextBlocksを使用するコード例がありますか? (ここで私はこのToolTip.Templateをdefintする必要がありますか?) – user979033

関連する問題