Dường như tôi đã đánh một bức tường đang cố gắng sử dụng DataTemplates trên DataGrid của tôi. Những gì tôi đang cố gắng làm là sử dụng một mẫu để hiển thị hai hàng văn bản cho mỗi ô. Nhưng nó dường như không thể Bind cột trong bất kỳ cách nào.Ràng buộc DataGridTemplateColumn
Mã sau hy vọng cho thấy những gì tôi muốn làm. Lưu ý Ràng buộc cho mỗi cột: không có điều gì cho cột mẫu, và như vậy, xaml này không thể hoạt động được.
<Window.Resources>
<DataTemplate x:Key="DoubleField">
<StackPanel>
<TextBlock Text="{Binding Value1}"/>
<TextBlock Text="{Binding Value2}"/>
</StackPanel>
</DataTemplate>
</Window.Resources>
<DataGrid>
<DataGrid.Columns>
<DataGridTemplateColumn CellTemplate="{StaticResource DoubleField}" Binding="{Binding Title}"/> // <- Binding does not exist for templatecolumn, I only wish it did
<DataGridTemplateColumn CellTemplate="{StaticResource DoubleField}" Binding="{Binding Price}"/> // <- Binding does not exist for templatecolumn, I only wish it did
<DataGridTemplateColumn CellTemplate="{StaticResource DoubleField}" Binding="{Binding Stuff}"/> // <- Binding does not exist for templatecolumn, I only wish it did
</DataGrid.Columns>
</DataGrid>
class MyListItem {
class DoubleItem {
string Value1 { get; set; }
string Value2 { get; set; }
}
DoubleItem Title { get; set; }
DoubleItem Price { get; set; }
DoubleItem Stuff { get; set; }
}
Tôi có phải chịu trách nhiệm sao chép toàn bộ DataTemplate vào mỗi cột để có sự ràng buộc khác nhau trên mỗi bản sao không? Chắc chắn có một cách tốt đẹp để đi xung quanh này? Hay tôi chỉ thiếu một cái gì đó một cách mù quáng một lần nữa?
"Hay tôi chỉ thiếu một thứ gì đó hiển nhiên một lần nữa?" - tất cả chúng ta đã ở đó, đặc biệt là với WPF. –