簡體   English   中英

WPF GridView列綁定問題

[英]WPF GridView Column Binding issue

我有以下運行良好的GridView控件:

<DataGrid IsReadOnly="true"
          ItemsSource="{Binding CiList}"
          AutoGenerateColumns="True"
          SelectedItem="{Binding Path=CI}" />

如果我設置AutoGenerateColumns="False"並手動添加DataGridTextColumn,如下所示:

<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之前,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>

您需要將Columns標簽添加到網格

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM