WPF datagrid繫結list容器無法更新顯示
Xml程式碼片段:
<DataGrid x:Name="DataGridGap_y" RowHeaderWidth="0" AlternationCount="2" Grid.Row="1" Grid.Column="0" AutoGenerateColumns="False" HorizontalScrollBarVisibility="Hidden" VerticalGridLinesBrush="#FFBCC1BC" HorizontalGridLinesBrush="#FFBCC1BC">
<DataGrid.Columns> <DataGridTextColumn Width="*" Binding="{Binding Index}"> <DataGridTextColumn.Header> <TextBlock Text="索引" Foreground="White"/> </DataGridTextColumn.Header> </DataGridTextColumn>
<DataGridTextColumn Width="*" Binding="{Binding Val, Mode=TwoWay}"> <DataGridTextColumn.Header> <TextBlock Text="Y" Foreground="White"/> </DataGridTextColumn.Header> </DataGridTextColumn>
Xml.cs資料繫結:
public void LoadParameter() { XdataItems.Clear(); YdataItems.Clear(); for (int i = 0; i < OledRecipeParameter.Instance.XDirectionCellGap.Count; i++) { XdataItems.Add(new dataItem(i + 1,OledRecipeParameter.Instance.XDirectionCellGap[i])); } for (int i = 0; i < OledRecipeParameter.Instance.YDirectionCellGap.Count; i++) { YdataItems.Add(new dataItem(i + 1, OledRecipeParameter.Instance.YDirectionCellGap[i])); } DataGridGap_x.ItemsSource = XdataItems; DataGridGap_y.ItemsSource = YdataItems;
}
存在的問題:
以List作為繫結資料的容器時 :
public List<dataItem> XdataItems = new List<dataItem>(); public List<dataItem> YdataItems = new List<dataItem>();
如果想要更新xml繫結的資料容器時,xml介面不能顯示新的繫結資料,只能顯示最初始的繫結資料
解決辦法:
public ObservableCollection<dataItem> XdataItems = new ObservableCollection<dataItem>(); public ObservableCollection<dataItem> YdataItems = new ObservableCollection<dataItem>();