我需要知道用户何时对WPF Datagrid进行了排序.为什么没有Sorted
活动?我只能找到一个排序事件.
我也调查过CollectionView
,ListCollectionView
那就是将对象暴露给View,没有任何运气.
我很惊讶,因为这应该是开箱即用的.有任何想法吗?
我有一个带有DataTable的DataGrid和ItemsSource.列数随时间而不同.如果列的DataType属于类AI,则希望使用DataTemplate来自定义单元格内容的外观.
我已经设定
AutoGenerateColumns="True"
Run Code Online (Sandbox Code Playgroud)
在DataGrid上,以便生成DataTable中的所有列.
如果DataType是A类型,我用DataGridTemplateColumn替换DataGridColumn
private void DataGrid_AutoGeneratingColumn(object sender, system.Windows.Controls.DataGridAutoGeneratingColumnEventArgs e)
{
if (e.PropertyType == typeof(A))
{
e.Column = new DataGridTemplateColumn
{
CellTemplate = (DataTemplate)Resources["ATemplate"],
Header = e.Column.Header,
HeaderTemplate = e.Column.HeaderTemplate,
HeaderStringFormat = e.Column.HeaderStringFormat
};
}
}
Run Code Online (Sandbox Code Playgroud)
DataTemplate看起来像这样.
<DataTemplate x:Key="ATemplate">
<RadioButton Content="{Binding Name}" GroupName="{Binding GroupName}" IsChecked="{Binding IsSelected}" />
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
显示了radiobutton,但我得到了所有属性的绑定错误,例如
BindingExpression path error: 'IsSelected' property not found on 'object' ''DataRowView'
Run Code Online (Sandbox Code Playgroud)
A类看起来像这样
public class A
{
public string Name { get; set; }
public string GroupName { get; set; }
public …
Run Code Online (Sandbox Code Playgroud)