2013-02-27 43 views
3

我似乎無法將工具提示綁定到DataGridCell的內容,而沒有讓單元格中的內容消失。換句話說,當我將鼠標懸停在單元格上時,工具提示按預期顯示,但單元格內容不再可見(永久性除非我向下滾動列表並備份)。貝婁是WPF我遇到的麻煩:當工具提示顯示時DataGridCell內容消失

<DataGrid.CellStyle> 
    <Style TargetType="DataGridCell"> 
     <Setter Property="ToolTip" Value="{Binding RelativeSource={RelativeSource Mode=Self}, Path=Content, Mode=OneWay}"> 
     </Setter> 
    </Style> 
</DataGrid.CellStyle> 

我能做些什麼,從消失的工具提示顯示時停止DataGridCell的內容?

回答

2

您綁定到Content屬性,它可以是很多東西,但主要是它了一定的控制:TextBlock文本,CheckBox爲布爾數據等等。此控件已經是其他視覺元素的子元素,因此它們的消失可能是因爲它們從單元格中移除並添加到ToolTip。如果是這樣的話,那麼它就是在你的代碼中的某處完成的,我想你必須處理這個問題,但這不是一個好的解決方案。

另外,您可以轉換器添加到綁定,將解析Content並提取值,但該解決方案是不那麼好了。

更好的方法來處理這個是綁定到實際的來源,而不是它的視覺表示。如果你不自動創建列,那麼你可以爲每一列定義工具提示樣式:

<DataGrid.Columns> 
     <DataGridTextColumn Binding="{Binding Name}"> 
      <DataGridTextColumn.CellStyle> 
       <Style> 
        <Setter Property="ToolTipService.ToolTip" Value="{Binding Name}" /> 
       </Style> 
      </DataGridTextColumn.CellStyle> 
     </DataGridTextColumn> 
</DataGrid.Columns> 
+0

有沒有辦法讓這個更通用的模板?即我有一個模板,上面有一個關鍵字「DataGridCellWithToolTip」,它具有以下設置器,並且具有與上面相同的問題 bgura 2014-08-29 19:07:42

+0

@Thatoneguy,好吧,如果你想爲此添加一個Style,你可以添加一個[Converter](http://msdn.microsoft.com/en-us/library/system.windows.data.ivalueconverter%28v=vs。 110%29.aspx)綁定到您的綁定,它將從控件提取值並將其作爲文本返回。在這裏我想不出其他的通用方法。 – icebat 2014-08-29 19:27:50