source

WPF에서 데이터 그리드를 새로 고치는 방법

ittop 2023. 10. 4. 22:58
반응형

WPF에서 데이터 그리드를 새로 고치는 방법

내 소스는 MySQL 데이터베이스에 있으며 업데이트 명령을 만들었으며 이제 새로 고쳐야 합니다.DataGrid.

MySqlCommand cmd = new MySqlCommand(
  "update request set status = " + StatusRequest(value) + 
  " where id = " + rowView[0].ToString() + "", conn);
MySqlDataReader myReader = cmd.ExecuteReader();

새로 고침 방법DataGrid?

해라mydatagrid.Items.Refresh()

업데이트 후 그리드의 데이터 소스 다시 로드

myGrid.ItemsSource = null;
myGrid.ItemsSource = myDataSource;

MSDN에서 -

CollectionViewSource.GetDefaultView(myGrid.ItemsSource).Refresh();

데이터 그리드를 관찰 가능한 컬렉션에 바인딩하고 대신 컬렉션을 업데이트합니다.

어때.

mydatagrid.UpdateLayout();

저는 이 문제로 많은 어려움을 겪었고, 이것이 제가 DataGrid를 새로운 값으로 다시 로드하는 데 도움이 되었습니다.최신 데이터 값을 얻으려면 데이터를 가져올 데이터 유형을 사용해야 합니다.

저는 그것을 대표했습니다.SomeDataType아래.

DataContext.Refresh(RefreshMode.OverwriteCurrentValues, DataContext.SomeDataType);

이것이 제가 가졌던 것과 같은 문제들을 가진 누군가에게 도움이 되기를 바랍니다.

단일 행 업데이트를 원하는 경우:

새 Observable Collection을 생성하고 초기화합니다.

public ObservableCollection<myModel> myObservableCollection { get; set; } = new ObservableCollection<myModel>();

행 업데이트

//Get current row as your model
var row = myDataGrid.CurrentItem as myModel;
//Find in your collection index of selected row
var b = myObservableCollection.IndexOf(myObservableCollection.FirstOrDefault(e=>e.Id == row.Id));
//Create a copy of this row
var k = row.Clone() as myModel;
//Here you can mofidy what you want
k.Name = "New name";
k.SomethingId = 2137;
//Replace object in you collection
myObservableCollection[b] = k;

모델을 복제하기 위한 코드는 다음과 같습니다.

public object Clone()
{
    return this.MemberwiseClone();
}

언급URL : https://stackoverflow.com/questions/11324688/how-to-refresh-datagrid-in-wpf

반응형