0
由於我們的軟件的性質,我們必須在代碼中動態創建我們的DataGrid列的後面,然後將其添加到DataGrid這樣的:如何將工具提示的內容綁定到代碼中的MVVM屬性?
DataGridBoundColumn dataGridBoundColumn = new DataGridTextColumn
{
CellStyle = ...,
Header = header,
Binding = binding
};
reportDataGrid.Columns.Add(dataGridBoundColumn);
現在,我們需要對的columnHeader工具提示:
ToolTipService.SetToolTip(dataGridBoundColumn, "ENTER VALUE");
那麼工作得很好。不過,我需要將工具提示的值綁定到ViewModel上的屬性。我知道如何在xaml中執行此操作,但不知道如何在代碼中執行此操作。
任何幫助,將不勝感激,
UPDATE:
感謝史蒂夫的答案,我能略有不同解決這個問題:
Binding bindingBoundToTooltipProperty = new Binding()
{
Source = reportDataGrid.DataContext,
Path = new PropertyPath("ToolTipSorting")
};
BindingOperations.SetBinding(dataGridBoundColumn, ToolTipService.ToolTipProperty, bindingBoundToTooltipProperty);
如果DataGridColumnHeaderStyle是定製的,確保將這些行添加到模板以及:
<Trigger Property="IsMouseOver" Value="True">
<Setter Property="ToolTip" Value="{Binding Column.(ToolTipService.ToolTip), RelativeSource={RelativeSource Self}}"/>
</Trigger>
謝謝史蒂夫。我得到System.Windows.Data錯誤:2:找不到控制目標元素的FrameworkElement或FrameworkContentElement。 BindingExpression:路徑= ToolTipSorting;的DataItem = NULL;目標元素是'DataGridTextColumn'(HashCode = 42996073);目標屬性是'工具提示'(類型'對象') – Houman
如果Datacontext位於標題上,請如何綁定到我的ViewModel上的MVVM屬性「ToolTipSorting」? – Houman
我不是100%確定'DataContext'是'Header'屬性 - 你可以將綁定路徑留空以查看示例中的數據上下文是什麼類型? –