2017-10-24 3 views
0

Das ist mein Dodel:ToolTip mit mehreren Bindungseigenschaften

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

Dies ist meine ListView Säule:

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

So im Fall i zum Beispiel in meinen ToolTip all meine Eigenschaften sehen will:

name + "\n" + Id + "\n" + Age + + "\n" + Description 

Antwort

1

Hier ist, was ich für das geschehen würde:

<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> 

I verwendet Runs so können Sie Namen und andere Eigenschaften auf nach dem anderen mit vollständiger Anpassung binden.

+0

Wo muss ich dieses DataTemplate? – user979033

+0

Schauen Sie sich Ihren Post an und ersetzen Sie Ihre 'DataTemplate' durch meine. Dann ändern Sie die Bindung an Ihren 'Dodel'. – XAMlMAX

+0

Siehe meine aktualisierte Antwort. – XAMlMAX

1

Warum nicht eine neue String-Typ-Eigenschaft zu Ihrem Modell hinzufügen und kombinieren Sie alle im Konstruktor.

Wenn Sie es wirklich so machen wollen, kann this Ihnen helfen.

+1

Sie können 'ToolTip.Template' auch in ein' StackPanel' ändern und mehrere 'TextBlocks' darin einfügen (alle an eine andere Eigenschaft gebunden), aber um ehrlich zu sein, ist das Erstellen einer neuen Eigenschaft in Ihrem Modell viel sauberer und einfacher zu wartende Lösung. –

+0

ich möchte nicht eine andere To.String hinzufügen, weil ich diese ToString in einem anderen Controller verwenden, kann ich Codebeispiel wie diese mehrere TextBlocks verwenden? (Wo muss ich dieses ToolTip.Template definieren?) – user979033

Verwandte Themen