WPF 网格视图列绑定问题
本文关键字:绑定 问题 视图 网格 WPF | 更新日期: 2023-09-27 18:33:51
我有以下工作正常的 GridView 控件:
<DataGrid IsReadOnly="true"
ItemsSource="{Binding CiList}"
AutoGenerateColumns="True"
SelectedItem="{Binding Path=CI}" />
如果我设置AutoGenerateColumns="False"
并手动添加数据网格文本列,如下所示:
<DataGrid IsReadOnly="true"
ItemsSource="{Binding CiList}"
AutoGenerateColumns="False"
AlternatingRowBackground="Gainsboro"
AlternationCount="2"
Height="150"
SelectedItem="{Binding Path=CI}">
<DataGridTextColumn Header="Name"
Binding="{Binding Path=Name}" />
</DataGrid>
我收到一个 InvalidOperationException "在使用 ItemsSource 之前,项目集合必须为空。
我做错了什么?谢谢!
编辑:我正在使用MVVM模式,窗口的DataContext是我的ViewModel,其中CiList是一个属性。
您需要
将列标记添加到网格
<DataGrid..>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
</DataGridColumns>
...
您需要在DataGrid.Columns
中定义列
<DataGrid IsReadOnly="true" ItemsSource="{Binding CiList}" AutoGenerateColumns="False" AlternatingRowBackground="Gainsboro" AlternationCount="2" Height="150" SelectedItem="{Binding Path=CI}">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
</DataGrid.Columns>
</DataGrid>
Put 列 in DataGrid.列如下所示:
<DataGrid IsReadOnly="true" ItemsSource="{Binding CiList}" AutoGenerateColumns="False" AlternatingRowBackground="Gainsboro" AlternationCount="2" Height="150" SelectedItem="{Binding Path=CI}">
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
</DataGrid.Columns>
</DataGrid>