의 ItemsSource
에 이미 데이터가있는 경우 WPF DataGrid에서 데이터 소스가 비어있을 때 행을 추가 할 수 없음
CanUserAddRows="True"
만 '작동'합니다. 원래 항목 목록에 행이 없으면 CanUserAddRows="True"
을 설정했지만 DataGrid
에 새 항목을 입력하는 placeholder
행이 표시되지 않습니다. 왜?!
미리 감사드립니다. Trindaz
의 ItemsSource
에 이미 데이터가있는 경우 WPF DataGrid에서 데이터 소스가 비어있을 때 행을 추가 할 수 없음
CanUserAddRows="True"
만 '작동'합니다. 원래 항목 목록에 행이 없으면 CanUserAddRows="True"
을 설정했지만 DataGrid
에 새 항목을 입력하는 placeholder
행이 표시되지 않습니다. 왜?!
미리 감사드립니다. Trindaz
는 WPF DataGrid에 알려진 문제가 될 수 있습니다. 토론 here (네 번째 주석에서 시작) 또한 net. 4에서 수정 된 것으로 보입니다. 3.5 및 4 (beta2) 프레임 워크에서이 문제에 대한 몇 가지 테스트를 수행했습니다. TestGridItem 이하이고
public class TestGridItems0 : ArrayList
{
}
public class TestGridItems1 : List<TestGridItem>
{
}
public class TestGridItems2<T> : List<TestGridItem>
{
}
:
public class TestGridItem
{
public string One { get; set; }
public string Two { get; set; }
public string Three { get; set; }
}
.NET 3.5
TestGridItems0 및 TestGridItems1 PLS 아래 결과 참조 :
먼저 I 아이템 컬렉션의 3 종류를 정의 빈 콜렉션에 빈 줄을 표시하지 않았습니다. 어디로 TestGridItems2 괜찮 았어.
.NET 4
만 TestGridItems0 빈 컬렉션의 라인을 보여주지 않았다; 다른 2 명은 잘 작동했습니다. 그리드에 대한
XAML :이 도움이
dataGrid.ItemsSource = new TestGridItems0();
dataGrid.ItemsSource = new TestGridItems1();
dataGrid.ItemsSource = new TestGridItems2<TestGridItem>();
희망,
간단한'.ToList()'변환으로 문제가 해결되었습니다. 힌트를 가져 주셔서 감사합니다. –
당신의 ItemsSource에 빈 항목을 추가하고 제거에 관하여 : 아래
<my:DataGrid Name="dataGrid" AutoGenerateColumns="False" CanUserAddRows="True">
<my:DataGrid.Columns>
<my:DataGridTextColumn Binding="{Binding One}" Header="One" />
<my:DataGridTextColumn Binding="{Binding Two}" Header="Two" />
<my:DataGridTextColumn Binding="{Binding Three}" Header="Three" />
</my:DataGrid.Columns>
</my:DataGrid>
항목 소스가 할당하는 방법이다 그것. 이 작업을 수행 한 후 CanUserAddRows를 true로 설정해야 할 수도 있습니다. 이 솔루션을 읽었습니다 here : (Jarrey 및 Rick Roen의 게시물)
ItemsSource를 DataTable의 DefaultView로 설정하고 뷰가 비어있을 때이 문제가 발생했습니다. 열은 정의되었으므로 가져올 수 있어야했습니다. ㅎ.
또한 화면에서 벗어난 열을 보려면 오른쪽으로 스크롤 할 수 없기 때문에 항목이없는 가로 스크롤 막대가 없어집니다. –