【发布时间】:2011-11-03 10:57:12
【问题描述】:
我的应用程序中有来自 WPF Toolkit 的 DataGrid 控件。我需要用调整的 TextBlock 替换用于单元格的默认 TextBlock。 XAML 代码看起来像:
<Window.Resources>
<Style x:Key="cellStyle" TargetType="{x:Type tk:DataGridCell}">
<Setter Property="ContentTemplate">
<Setter.Value>
<DataTemplate>
<TextBlock Background="Yellow" />
</DataTemplate>
</Setter.Value>
</Setter>
</Style>
</Window.Resources>
<Grid>
<tk:DataGrid
ItemsSource="{Binding Path=Products}"
CellStyle="{StaticResource cellStyle}"
AutoGenerateColumns="False">
<tk:DataGrid.Columns>
<tk:DataGridTextColumn
Header="Id"
Binding="{Binding Path=Id}"/>
<tk:DataGridTextColumn
Header="Product"
Binding="{Binding Path=Name}"/>
</tk:DataGrid.Columns>
</tk:DataGrid>
</Grid>
TextBlock 替换后,所有数据绑定丢失,所有单元格为空。将属性 Text="{Binding}" 添加到新的 TextBlock 没有帮助。在这种情况下,所有单元格都包含 DataGridTestApp.Product 类型的名称。 TextBlock 的正确绑定表达式是什么?
附:以防万一:MainWindowViewModel 的代码
internal sealed class MainWindowViewModel
{
public MainWindowViewModel()
{
_products = new ObservableCollection<Product>()
{
new Product(1, "ProductName1"),
new Product(2, "ProductName2"),
new Product(3, "ProductName3"),
new Product(4, "ProductName4"),
new Product(5, "ProductName5"),
};
}
public ObservableCollection<Product> Products
{
get { return _products; }
}
private ObservableCollection<Product> _products;
}
【问题讨论】:
标签: c# .net .net-3.5 datagrid wpftoolkit