相关疑难解决方法(0)

Datagrid:没有Sorted事件吗?

我需要知道用户何时对WPF Datagrid进行了排序.为什么没有Sorted活动?我只能找到一个排序事件.

我也调查过CollectionView,ListCollectionView那就是将对象暴露给View,没有任何运气.

我很惊讶,因为这应该是开箱即用的.有任何想法吗?

wpf wpfdatagrid

7
推荐指数
3
解决办法
6520
查看次数

WPF DataGrid - 在CellTemplates DataTemplate中将数据绑定到DataTable单元格

我有一个带有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)

c# wpf datagrid mvvm

6
推荐指数
1
解决办法
6950
查看次数

标签 统计

wpf ×2

c# ×1

datagrid ×1

mvvm ×1

wpfdatagrid ×1