我有一个数据网格,第一列中有按钮,用于展开每行下的另一个数据网格。我希望工具提示显示数据网格内的行数。现在我试图获取工具提示但是通过将其与属性绑定来显示一些文本,但是没有显示任何内容。这是我在数据网格中的按钮的xaml:
<Control:DataGridTemplateColumn>
<Control:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Click="ShowHideDetailsClick" Foreground="Black"
ToolTip="{Binding ToolTipDetails}">+</Button>
</DataTemplate>
</Control:DataGridTemplateColumn.CellTemplate>
</Control:DataGridTemplateColumn>
C#:
public string ToolTipDetails
{
get { return _toolTip; }
set
{
if (_toolTip != value)
{
_toolTip = value;
OnPropertyChanged("ToolTipDetails");
}
}
}
protected virtual void OnPropertyChanged(string propertyName)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null) handler(this, new PropertyChangedEventArgs(propertyName));
}
在我的加载窗口事件中,我设置了这个:
ToolTipDetails = "ChildTrades: 0";
答案 0 :(得分:0)
您需要设置网格ItemSsource属性。这里
<DataGrid x:Name="DataGrid" AutoGenerateColumns="False" CanUserAddRows="False">
<DataGrid.Columns>
<DataGridTemplateColumn Header="Data">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Button Foreground="Black" ToolTip="{Binding ToolTipDetails}" Click="ShowHideDetailsClick" FontSize="16">+</Button>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
然后在我背后的代码中
List<Data> items = new List<Data> { new Data() { ToolTipDetails = "Tip one here" }, new Data() { ToolTipDetails = "Tip two here" } };
DataGrid.ItemsSource = items;
答案 1 :(得分:0)
当您以某种方式绑定到DataGrid
数据时,可以将DataGrid.ItemsSource
设置为某种集合,或者甚至是DataTable
。关键是它是一个项集合,这些项的属性或列是绑定到DataGrid
中各个列的数据。
<DataGrid ItemsSource="{Binding YourCollection}" />
集合中的每个项目都由DataGrid
中的一行表示。如果您希望数据将不同数据绑定到ToolTip
的每一行中的DataGrid
属性,则需要为{{{}的每个项目提供属性或列。 1}}集合到数据绑定到。通过这种方式,您可以执行您想要的内容 YourCollection
行中的数据项具有名为DataGrid
的属性或列:
ToolTipDetails