2017-11-22 5 views
0

TelerikのUWP RadDataGridの行の編集を終了するのに問題があります。データが入力されると、セルをクリックして編集を開始します。行の編集が終わったら、編集を終了するためにEnterキーを押しますが、編集モードのままです。別の行のセルをクリックすると編集が終了し、新しいデータはそのまま残りますが、バインドされたコレクションは更新されません。以下は、私が使用しているグリッドのスクリーンショットである: は、ここに私のページで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キーを押すと、編集操作が正常に完了します。したがって、このtelerikコントロールには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

ザビエル、詳細な応答のための時間を割いて本当にありがとうございました。私は月曜日にこれを調べます。ハッピーな感謝! –

関連する問題