[wpf] 하단의 WPF 데이터 그리드 빈 행

데이터 그리드를 사용하여 바인딩합니다.

//fill datagrid
public DataTable GameData
{
    get
    {
        DataSet ds = new DataSet();
        FileStream fs = new FileStream(IMDB.WebPage.Class.Config.XMLPath,
        FileMode.Open, FileAccess.Read);
        StreamReader reader = new StreamReader(fs, Encoding.Default);
        ds.ReadXml(reader);
        fs.Close();
        DataTable temp = ds.Tables[0];
        return ds.Tables[0];
     }
 }

어떤 이유로 바닥에 빈 줄이 생깁니다. 때로는 그리드의 일부 버튼과 확인란을 클릭 한 후 더 많은 빈 행이 추가됩니다.

왜 이런거야? 그리고 이것을 어떻게 차단합니까?



답변

CanUserAddRowsDataGrid에 대해 true로 설정 한 것 같습니다 . 그냥 추가

CanUserAddRows="false"

XAML에.


답변

또한 속성과 함께 작동합니다.

IsReadOnly="true"


답변

구현하는 백킹 컬렉션이 IEditableCollectionView해당 CanAddNew메서드 에서 true를 반환 하면 DataGrid는이를 원하는 것으로 가정합니다.

여기에 좋은 개요가 있습니다. WPF DataGrid의 편집 기능 개요


답변

소스 코드를 통해 DataGrid를 즉석에서 생성하는 경우 …

DataGrid grid = new DataGrid();

grid.CanUserAddRows = false;

//... 
grid.AutoGenerateColumns = false;
grid.Margin = new Thickness(10,20,10,10);
grid.VerticalAlignment = VerticalAlignment.Top;
grid.ItemsSource = //... and so on


답변

OP는 빈 행을 제거하는 방법을 묻었지만 제목은 구체적이지 않으며이 기사는 빈 행을 추가하는 방법을 찾으려고하면서 검색에 나타납니다. 빈 행이 나타나 려면 기본 생성자가 있어야 CanUserAddRows="True"하지만 ItemsSource필요합니다 public MyClass () { }.


답변