Я использую listview для отображения данных, таких как матрица данных (столбцы и строки). Моя проблема: мои элементы напечатаны: MatrixCellVM. Я попробовал все, что нашел в сети, чтобы применить DataTemplate к этим элементам, но ничего не получилось.DataTemplate в listview
Вот последний метод я использую больше
foreach (var col in dataMatrix.Columns)
{
//create the data template
DataTemplate cellLayout = new DataTemplate();
cellLayout.DataType = typeof(MatrixCellVM);
//set up the stack panel
FrameworkElementFactory spFactory = new FrameworkElementFactory(typeof(Grid));
spFactory.Name = "myComboFactory";
//set up value textblock
FrameworkElementFactory cellValue = new FrameworkElementFactory(typeof(TextBlock));
cellValue.SetBinding(TextBlock.TextProperty, new Binding("Value"));
cellValue.SetValue(TextBlock.ToolTipProperty, "Value");
spFactory.AppendChild(cellValue);
//set the visual tree of the data template
cellLayout.VisualTree = spFactory;
gridView.Columns.Add(new GridViewColumn{
Header = col.Name,
DisplayMemberBinding = new Binding(string.Format("[{0}]", count)),
CellTemplate = cellLayout
});
count++;
}
Одна вещь, когда я переопределить ToString() в MatrixCellVM, отображается значение (но с этой техникой добавить контекстное меню или давать какие-либо цвет к моему значению).
Я удалил свой тег из названия вопроса - тег вы добавили достаточно :-) Добро пожаловать в StackOverflow! –
Что вы думаете? –
Класс MatrixCellVM имеет свойство Value. Я просто хочу отобразить его в текстовом блоке. Как я могу это сделать? – Toast