|
@@ -1240,35 +1240,44 @@ namespace InABox.DynamicGrid
|
|
|
//Logger.Send(LogType.Information, ClientFactory.UserID, String.Format("{0}: GetSelectedRows({1})", this.GetType().EntityName(), DataGrid.SelectedItems.Count));
|
|
|
var result = new List<CoreRow>();
|
|
|
foreach (var item in DataGrid.SelectedItems)
|
|
|
+ {
|
|
|
if (item is CoreRow)
|
|
|
{
|
|
|
//result.Add(item as CoreRow);
|
|
|
}
|
|
|
- else
|
|
|
+ else if (item is DataRowView datarow)
|
|
|
{
|
|
|
- var datarow = item as DataRowView;
|
|
|
- if (datarow != null)
|
|
|
- {
|
|
|
- var row = datarow.Row.Table.Rows.IndexOf(datarow.Row);
|
|
|
- result.Add(Data.Rows[row]);
|
|
|
- }
|
|
|
+ var row = datarow.Row.Table.Rows.IndexOf(datarow.Row);
|
|
|
+ result.Add(Data.Rows[row]);
|
|
|
}
|
|
|
+ }
|
|
|
|
|
|
return result.ToArray();
|
|
|
}
|
|
|
|
|
|
private void SetSelectedRows(CoreRow[] rows)
|
|
|
- {
|
|
|
- //Logger.Send(LogType.Information, ClientFactory.UserID, String.Format("{0}: SetSelectedRows({1})", this.GetType().EntityName(), rows.Length));
|
|
|
- // CoreTableAdapter<T> adapter = (CoreTableAdapter<T>)DataGrid.ItemsSource;
|
|
|
+ {
|
|
|
DataGrid.SelectedItems.Clear();
|
|
|
- var bFirst = true;
|
|
|
- foreach (var row in rows.Where(x => x.Index > -1))
|
|
|
+
|
|
|
+ var table = DataGridItems;
|
|
|
+ if(table is null) return;
|
|
|
+
|
|
|
+ var dataRows = rows.Where(x => x.Index > -1).Select(row =>
|
|
|
+ {
|
|
|
+ return table.Rows[row.Index];
|
|
|
+ });
|
|
|
+ if (!HasOption(DynamicGridOption.MultiSelect))
|
|
|
+ {
|
|
|
+ dataRows = dataRows.Take(1);
|
|
|
+ }
|
|
|
+
|
|
|
+ foreach (var row in dataRows)
|
|
|
{
|
|
|
- //DataTable table = (DataTable)DataGrid.ItemsSource;
|
|
|
- if (bFirst || HasOption(DynamicGridOption.MultiSelect))
|
|
|
- DataGrid.SelectedItems.Add(DataGrid.GetRecordAtRowIndex(row.Index + (HasOption(DynamicGridOption.FilterRows) ? 2 : 1)));
|
|
|
- bFirst = false;
|
|
|
+ var record = DataGrid.View.Records.FirstOrDefault(x => (x.Data as DataRowView)!.Row == row);
|
|
|
+ if(record?.Data is DataRowView rowView)
|
|
|
+ {
|
|
|
+ DataGrid.SelectedItems.Add(rowView);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
|