사용자가 행을 추가 할 수있게 해주는 wpf DataGrid가 있습니다. 사용자가 데이터 행을 복사 할 수있는 기능을 추가해야하며 붙여 넣기시 새 행으로 추가됩니다. 나는 (Ctrl + C) 행을 복사 할 수 있지만 붙여 넣기 (Ctrl + V)를 누르면 모든 항목이 행의 첫 번째 셀에 붙여 넣어집니다. 행의 각 셀에 어떻게 붙여 넣을 수 있습니까?DataGrid 행을 복사하여 WPF 데이터 격자에 새 행을 붙여 넣으십시오.
<DataGrid Name="grdTest" HorizontalAlignment="Left" Grid.Row="0" Margin="5,5,0,0" VerticalAlignment="Top" Height="426" Width="1034"
AlternationCount="2" ItemsSource="{Binding TestsList,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" >
<DataGrid.Columns>
<DataGridCheckBoxColumn Header="Is Active" Binding="{Binding Path=IsActive,Mode=TwoWay}">
<DataGridTextColumn Width="90">
<DataGridTextColumn.Binding>
<Binding Path="TestName" Mode="TwoWay">
<Binding.ValidationRules>
<localVal:ValidationRules/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.Header>
<TextBlock Width="80" Text="Test Name" ToolTip=""/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
<DataGridTextColumn.Binding>
<Binding Path="TestType" Mode="TwoWay">
<Binding.ValidationRules>
<localVal:ValidationRules/>
</Binding.ValidationRules>
</Binding>
</DataGridTextColumn.Binding>
<DataGridTextColumn.Header>
<TextBlock Width="80" Text="Test Type" ToolTip=""/>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
이것은 내가 지금까지 가지고 무엇을 :
private void grdTest_CopyingRowClipboardContent(object sender, DataGridRowClipboardEventArgs e)
{
copiedItem = (Test)e.Item;
}
private void grdTest_PreviewKeyDown(object sender, KeyEventArgs e)
{
if (e.Key == Key.V && (Keyboard.Modifiers & ModifierKeys.Control) == ModifierKeys.Control)
{
if (App.ViewModel.UpdatedListCommand.CanExecute(null))
{
App.ViewModel.UpdatedListRowCommand.Execute(copiedItem);
}
}}}
나는 뷰 모델의 목록을 업데이트하고 NotifyProperty 변경 호출합니다. 목록이 업데이트되지만 UI에 반영되지 않습니다. 행 (복사/붙여 넣기 값)은 비어있는 것처럼 보이지만 셀을 선택하면 값이 나타납니다. 그래서 기본적으로 제대로 설정되지만 일부는 데이터 그리드에 표시되지 않습니다.
안녕하세요, 그 해결책을 찾았습니까? 찾으면 대답으로 업데이트 해 주실 수 있습니까? 나는 또한 똑같은 문제에 대한 해결책을 찾고있다. 감사합니다 – batmaci