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


201

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

//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];
     }
 }

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

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

답변:


447

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

CanUserAddRows="false"

XAML에.


13
그리드의 속성에서 확인란을 선택하지 않은 경우에도 사용자가 명시 적으로 추가 행을 숨길 수있는 코드의 줄을 추가 (또는 확인 확인란을 선택 취소) 할 필요가 있다는 사실을 양지
토비아스 Valinski

6
코드를 숨기지 않으려면 CanUserAddRows = "False"속성을 추가하십시오. WPF의 버그처럼 보이며 명시 적으로 false로 설정해야합니다.
ZZZ

오히려 반대의 문제가 있습니다. 빈 행을 만들지는 않지만 오히려 원합니다.
Shimmy Weitzhandler

21

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

IsReadOnly="true"

이것은 CanUserAddRows & CanUserDeleteRows
RDV


3

소스 코드를 통해 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

0

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

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.