将自定义对象列表数据绑定到数据网格

时间:2014-06-04 08:13:39

标签: c# wpf xaml datagrid wpfdatagrid

我试图将自定义数据列表绑定到WPF中的Datagrid

这是自定义对象:

public class User
{
    public string Name { get; set; }
    public string Role{ get; set; }
}

从数据库中我将​​此数据作为列表

获取
public List<User> allUsers;

我将此列表发送到视图模型类 - &gt;

public ListWindowViewModel(object dataSource)
{
     this.datasource = dataSource;
}

public DataView GridData
{       
    get
    {
        DataSet ds = new DataSet("ListData");    
        ds = dataSource as DataSet;    
        return ds.Tables[0].DefaultView;
    }
 }

在我的ListView xaml文件中,我使用了绑定 - &gt;

<DataGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="5" Margin="3" x:Name="mainGrid"
                  ItemsSource="{Binding Path=GridData, Mode=OneWay}">
        </DataGrid>

由于ds = dataSource as DataSet;无法正常工作,因此无效。

2 个答案:

答案 0 :(得分:1)

你可以直接创建像。

这样的集合
 private ObservableCollection<User> _allUsers=new ObservableCollection<User>();

    public ObservableCollection<User> allUsers
    {
        get { return _allUsers; }
        set { _allUsers = value; }
    }

并且您的datagrid绑定看起来像

<DataGrid Grid.Column="0" Grid.Row="1" Grid.ColumnSpan="5" Margin="3" x:Name="mainGrid"
              ItemsSource="{Binding=allUsers, Mode=OneWay}">
    </DataGrid>

答案 1 :(得分:0)

试图直接使用绑定?像:

(名称为Datagrid).ItemSsource = null;

(名称为Datagrid).ItemSsource = allUsers;