2017-11-22 13 views
0

Telerik의 UWP RadDataGrid에서 행 편집을 끝내는 데 문제가 있습니다. 데이터가 채워지면 셀을 클릭하여 편집을 시작합니다. 행 편집이 끝나면 입력을 눌러 편집을 마쳤지 만 편집 모드로 유지됩니다. 다른 행의 셀을 클릭하면 편집이 끝나고 새 데이터는 그대로 유지되지만 바인딩 된 컬렉션은 업데이트되지 않습니다. 아래는 내가 사용하고있는 그리드의 스크린 샷은 다음과 같습니다 여기 내 페이지의 XAML 코드 : 나는 도움이 정말 감사하겠습니다UWP Telerik RadDataGrid가 입력 행을 편집하여 편집을 끝내지 못하도록합니다.

<tg:RadDataGrid ColumnDataOperationsMode="Flyout" x:Name="grid" ItemsSource="{x:Bind ViewModel.Source}" UserEditMode="Inline" Grid.ColumnSpan="4" Grid.Row="1"/> 

enter image description here

. 미리 감사드립니다.

답변

1

행을 편집 한 후에 편집을 마치려면 입력을 누르지 만 편집 모드는 유지됩니다.

Telerik.UI.for.UniversalWindowsPlatform(1.0.0.7) 패키지를 테스트하고 설치하기 위해 16299 UWP 프로젝트를 만들었습니다. 그런 다음이 문제를 재현 할 수 있습니다. 그러나 프로젝트의 목표 버전을 "15063"으로 변경하면 Enter 키를 누르면 편집 작업이 성공적으로 완료됩니다. 따라서이 텔 레릭 컨트롤은 16299 년에 실행될 때 몇 가지 문제가있을 수 있습니다.이 문제는 Telerik의 공식 사이트에 신고 할 수 있습니다.

UWP의 Telerik 컨트롤은 오픈 소스이기 때문에 소스 코드를 확인하고 직접이 문제를 해결할 수 있습니다. 그러면 사용자 정의 버전을 직접 컴파일하여 프로젝트에서 사용할 수 있습니다.

이 코드에 대한 관련 코드가 다음 줄 코드에서 보였을 수 있습니다. https://github.com/telerik/UI-For-UWP/blob/master/Controls/Grid/Grid.UWP/View/RadDataGrid.Manipulation.cs#L392 아마도 확인할 수 있습니다.

다른 행의 셀을 클릭하면 편집이 끝나고 새 데이터는 그대로 유지되지만 바인딩 된 컬렉션은 업데이트되지 않습니다.

코드를 본 적이 없으므로 문제가 어디인지 알지 못했습니다. 그러나 그것은 내 편이 좋았다. 당신은 참조를 위해 내 간단한 코드 샘플을 확인할 수 있습니다 :

<telerikGrid:RadDataGrid x:Name="DataGrid" ItemsSource="{x:Bind ls}" UserEditMode="Inline"></telerikGrid:RadDataGrid> 
public sealed partial class MainPage : Page 
{ 
    public ObservableCollection<Data> ls { get; set; } 
    public MainPage() 
    { 
     this.InitializeComponent(); 
     ls = new ObservableCollection<Data>() {new Data { Country = "India", Capital = "New Delhi"}, 
new Data { Country = "South Africa", Capital = "Cape Town"}, 
new Data { Country = "Nigeria", Capital = "Abuja" }, 
new Data { Country = "Singapore", Capital = "Singapore" } }; 
    } 
} 

public class Data:INotifyPropertyChanged 
{ 
    private string _Country; 
    public string Country 
    { 
     get { return _Country; } 
     set 
     { 
      _Country = value; 
      RaisePropertyChange("Country"); 
     } 
    } 

    private string _Capital; 
    public string Capital 
    { 
     get { return _Capital; } 
     set 
     { 
      _Capital = value; 
      RaisePropertyChange("Capital"); 
     } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 

    public void RaisePropertyChange(string propertyName) 
    { 
     if (PropertyChanged!= null) 
     { 
      PropertyChanged(this,new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 
+0

자비에르, 상세한 응답 시간을내어 주셔서 대단히 감사합니다. 나는 이것을 월요일에 들여다 볼 것이다. 행복한 추수 감사절! –