C# WPF GridView列绑定问题
我有以下运行良好的GridView控件:C# WPF GridView列绑定问题,c#,wpf,xaml,data-binding,C#,Wpf,Xaml,Data Binding,我有以下运行良好的GridView控件: <DataGrid IsReadOnly="true" ItemsSource="{Binding CiList}" AutoGenerateColumns="True" SelectedItem="{Binding Path=CI}" /> 我得到一个InvalidOperationException“在使用ItemsSource之前,Items集合必须为空。” 我做错了什么?谢
<DataGrid IsReadOnly="true"
ItemsSource="{Binding CiList}"
AutoGenerateColumns="True"
SelectedItem="{Binding Path=CI}" />
我得到一个InvalidOperationException“在使用ItemsSource之前,Items集合必须为空。”
我做错了什么?谢谢
编辑:我使用的是MVVM模式,窗口的DataContext是我的ViewModel,CiList是它的一个属性。您需要在
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>
您需要在
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>
您需要将Columns标记添加到网格中
<DataGrid..>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
</DataGridColumns>
...
...
您需要将Columns标记添加到网格中
<DataGrid..>
<DataGrid.Columns>
<DataGridTextColumn Header="Name" Binding="{Binding Path=Name}" />
</DataGridColumns>
...
...
将列放入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>
将列放入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>