我有一個數據網格,我可以從中刪除項目。刪除一個項目意味着它不再在dataGrid上可見,但它仍然在DataSource中。如何根據條件在Wpf DataGrid中的選定項後獲取項目?
如何爲選中我可以設置的項目(將出現在這次的名單後,我刪除當前選中項)?
我需要得到對象本身,因爲我要檢查一些額外的標準,但我能想到的唯一的辦法就是一些討厭的for循環。
private void OnTakeOneClick(object sender, RoutedEventArgs e)
{
var tableSelectedItem = (PartialPaymentDTO)this.TableDataGrid.SelectedItem;
// var nextItemInGrid = ???
Model.TakeOrderItemsFromTable(tableSelectedItem);
if(tableSelectedItem.QuantityOnTable != 0)
{
this.TableDataGrid.SelectedItem = tableSelectedItem;
}
else
{
// select next item in data grid that based on some extra criteria
}
}
編輯:獲取選定項目後的整個項目列表也將非常有用。
請注意,我沒有從我的數據源項目。相反,我根據標準將它們隱藏在網格中。
var tableSelectedItem = (PartialPaymentDTO)this.TableDataGrid.SelectedItem;
int indexOfSelectedItem = this.TableDataGrid.Items.IndexOf(tableSelectedItem);
int indexOfNextItem = indexOfSelectedItem + 1;
if (this.TableDataGrid.Items.Count > indexOfNextItem)
this.TableDataGrid.SelectedItem = this.TableDataGrid.Items[indexOfNextItem];
是否使用數據綁定填充數據網格並設置當前所選項目的下一個項目?如果是這樣,我們可以使用xaml。否則,爲什麼不使用.IndexOf()之前的當前項目刪除之後刪除選擇該索引? –
是的,我正在使用數據綁定,但'AutoGenerateColumns =「False」' –