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



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

这是自定义对象:

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

从数据库中获取这个数据作为一个列表

public List<User> allUsers;

我将这个列表发送给视图模型类->

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;
    }
 }

在listviewxaml文件中,我使用binding ->

<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;不工作

您可以直接创建集合,如。

 private ObservableCollection<User> _allUsers=new ObservableCollection<User>();
    public ObservableCollection<User> allUsers
    {
        get { return _allUsers; }
        set { _allUsers = value; }
    }

和你的数据网格绑定看起来像

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

尝试直接使用绑定?如:

(nameDatagrid)。

(nameDatagrid)。

最新更新