Sorun oldukça basittir. Benim datagrid temelde dizelerle dolu nesnelerin bir listesi olan ItemSource (bindingList) öğesinden doldurulur.DataGrid'de Satır Seçimlerini Kaydetme ve Geri Yükleme
Kodumun bu belirli kısmında, bindingList'imi güncellemem gerekiyor. Ne yazık ki güncellendiğinde DataGrid'de yapılan tüm kullanıcı sıra seçimleri yok olur.
Bu, kullanıcı için düzeltmek istediğim bir rahatsızlıktır. Kullanıcı, tıklatılacak ciltleme listesi ile sonuçlanan düğmeyi tıkladığında, kullanıcının daha fazla değişiklik yapmak istemesi durumunda seçimler kaydedilir.
Kod Right Now:
//Save DataGrid Row Selections
bindingList[1] = (new ItemClass() { columnnumber = colonum, xcoord = xpos, ycoord = ypos, description = descrip });
dataGrid.ItemSource = bindingList;
//Restore DataGrid Row Selections
DÜZENLEME: Geniş kapsamı istendiği gibi:
private void Y_Incre_Button_Click(object sender, RoutedEventArgs e)
{
if (dataGrid.SelectedItems.Count != 0)
{
string colonum;
string xpos;
string ypos;
string descrip;
for (int i = 0; i < bindingList.Count; i++)
{
int selectionIndex = dataGrid.SelectedIndex;
if (selectionIndex > -1)
{
var curItem = bindingList[selectionIndex];
int yNum = int.Parse(curItem.ycoord);
int yNum2 = (yNum + 10);
colonum = curItem.columnnumber;
xpos = curItem.xcoord;
ypos = yNum2.ToString();
descrip = curItem.description;
//Save DataGrid Row Selections
bindingList[selectionIndex] = (new ItemClass() { columnnumber = colonum, xcoord = xpos, ycoord = ypos, description = descrip });
//Restore DataGrid Row Selections
}
}
}
else
{
MessageBox.Show("No Rows Selected");
}
}
Eğer ObservableCollection öğeleri daha sonra, bir ObservableCollection için ItemSource set takmak/silmek için bağlayıcı (yerine toplanması yerine doğru XAML kullandıysanız – aguertin
(şimdiye 15 satırları veya çevredeki) lütfen biraz daha fazla kod gösterir misiniz) o zaman ne istersen başarabilirsin. – slugster
Öğeleri eklemiyorum veya silmiyorum, sadece seçilen öğeyi güncelliyorum (değiştirerek). Muhtemelen ObservableCollection'da farklı mı yapıldı? – Mercender