У меня есть сетка данных, которую я заполняю из запроса sql, в котором есть несколько столбцов Fee значений bool, в которых отображается статус комиссии (оплачено / не оплачено).Я хочу, чтобы в каждой ячейке этого столбца отображалась метка и кнопка, метка будет отображать сумму комиссии (которая у меня есть в отдельной таблице в sql), а кнопка будет отображать статус, если он оплачен или не оплачен, на основе значения bool.
Я изменил шаблон этого столбца оплаты динамически, обнаружив столбец bool с помощью следующего кода, который я нашел в Интернете, также использовал преобразователь значений, чтобы изменить значение с bool на строку для (оплачивается / не оплачивается) иполучил кнопку, которую я хотел, но для метки я застрял, потому что я не знаю, как установить привязку метки для желаемого результата.
public class MyDataGridTemplateColumn : DataGridTemplateColumn
{
public string ColumnName
{
get;
set;
}
protected override FrameworkElement GenerateElement(DataGridCell cell, object dataItem)
{
// The DataGridTemplateColumn uses ContentPresenter with your DataTemplate.
ContentPresenter cp = (ContentPresenter)base.GenerateElement(cell, dataItem);
// Reset the Binding to the specific column. The default binding is to the DataRowView.
BindingOperations.SetBinding(cp, ContentPresenter.ContentProperty, new Binding(this.ColumnName));
return cp;
}
}
private void dataGrid_AutoGeneratingColumn(object sender, DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyType == typeof(bool))
{
MyDataGridTemplateColumn col = new MyDataGridTemplateColumn();
col.ColumnName = e.PropertyName; // so it knows from which column to get MyData
col.CellTemplate = (DataTemplate)FindResource("newTemplate");
e.Column = col;
e.Column.Header = e.PropertyName;
}
}
Я достиг этого до сих пор