簡體   English   中英

如何在dataTemplate中為文本塊動態設置工具提示?

[英]How to set tooltip dynamically for textblock in dataTemplate?

我的列表框中的每個條目都有下面的模板。 如何以編程方式為“價格”和“產品名稱”設置工具提示? 我可以使用哪些ID? 請注意,我要區分兩個項目:價格和產品名稱,並為每個項目顯示不同的工具提示,即使它們屬於列表框中的同一條目。

如您所見,在xaml中設置工具提示非常簡單(如下面的價格所示)。 但是我需要動態設置它的靈活性。 謝謝。

<DataTemplate>
    <DockPanel >
        <TextBlock DockPanel.Dock="Left" Text = "{Binding ProductName}" />
        <TextBlock Text="   " />
        <TextBlock Text = "{Binding Price}" ToolTip="Price" />
    </DockPanel>
</DataTemplate>

您可以綁定工具提示(幾乎可以綁定任何屬性),以便在分配給屬性時,UI會更新。 最好的選擇是在某個地方創建一個屬性(例如具有Price屬性的對象)並綁定到該生物。 只要確保您使用DependencyPropertyINotifyPropertyChanged

<DataTemplate>
    <DockPanel>
       <TextBlock DockPanel.Dock="Left" Text = "{Binding ProductName}" />
       <TextBlock Text="   " />
       <TextBlock Text = "{Binding Price}" ToolTip="{Binding PriceTooltipProperty}" />
    </DockPanel>
</DataTemplate>

您可以使用轉換器,轉換器接收一種類型的對象,然后可以檢查它是什么? 即字符串或數字,並使用所需的工具提示返回字符串。

{Binding Path=Price, Converter={StaticResource ObjectToTooltipConverter}}

然后,您的轉換器可能看起來像這樣。

public class ObjectToTooltipConverter: IValueConverter {

 public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
  if(value is Decimal)
  {
    return "The value was a decimal";
  }
  if(value is String)
  {
    return "The value was a string";

}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM