2017-12-26 21 views
0

ありがとうございます。UWPとMVVM Lightを使用してTelerikデータグリッドをリフレッシュする方法

[更新]ボタンをクリックしたときにTelerikグリッドをリフレッシュするときに問題が発生しています。つまり、ユーザーがデータを変更して保存しないと決めた場合、[更新]ボタンをクリックすると、元の値でグリッドが再読み込みされます。ここで

は、更新のためのビューの私のXAMLである:ここでは

<Button Content="Refresh" Grid.Row="1" Margin="92,5,0,11" Command="{x:Bind ViewModel.RefreshDataCommand}"/> 

はグリッドのためのビューの私のXAMLである:上記のコードでグリッドがバインドされていること

<tg:RadDataGrid ColumnDataOperationsMode="Flyout" x:Name="grid" ItemsSource="{Binding Source,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}" SelectedItem="{x:Bind ViewModel.CurrentUserData, Mode=TwoWay}" UserEditMode="Inline" Grid.ColumnSpan="4" Grid.Row="1" AutoGenerateColumns="False"> 

お知らせViewModelのSourceプロパティに追加します。 ViewModelのバウンドプロパティは次のとおりです。ページがナビゲートされると、上記のプロパティはグリッド内のデータを自動的に読み込みます。ここで

は、[更新]ボタンがバインドされている機能である:私は上記の関数で実験した

private void RefreshDataCommandAction() 
    { 
     udCol[0].Name = "test1"; 
     CurrentUserData = udCol[0]; 
     Source = udCol; 
     RaisePropertyChanged("Source"); 

    } 

コードが冗長に見えませんが、関係なく、私は何をすべきか、この機能で新しい割り当て理由、それはありますUIを更新しません。理想的には、UIのセルを更新し、[元に戻す]をクリックするか、データをリロードするだけです。 ViewModelはINotifyPropertyChangedを含むViewModelBaseを継承しています。プロパティが変更されたときにUIに変更を伝播させるのに十分であるはずです。 UIを更新するだけでMVVMパターンを破りたくはありません。

私は本当にいくつかの助けに感謝します。ありがとう、事前にたくさん!

EDIT:

<tg:RadDataGrid ColumnDataOperationsMode="Flyout" x:Name="grid" ItemsSource="{x:Bind ViewModel.Source}" SelectedItem="{x:Bind ViewModel.CurrentUserData, Mode=TwoWay}" UserEditMode="Inline" Grid.ColumnSpan="4" Grid.Row="1" AutoGenerateColumns="False"> 

答えて

0

ソースが変更通知を実装していないので、UIはあなたを知る方法がない:それは私のADD機能を壊したので、私は戻ってこれにビューの私のXAMLを変更

別のインスタンスが割り当てられました。

MVVMで、リストの任意のフォームを結合すると、3部は、通知を変更する必要があります。

  • あなたは(ソース)のリストを公開propery
  • リスト自体(監視可能なコレクションは、そのの世話をする)
  • あなたが公開しているタイプの各プロパティ(UserDataのすべてのプロパティ)
+0

ありがとうございました。簡単な例を挙げてください。 –

+0

Property Change Notificationの実装方法がわからない場合、MVVMの非常に重要な部分が欠落しています。おそらく最も重要なものは、それをまったく動作させるものです。私はWPVMのためにMVVMを学んだときに基本的な方法を紹介しました。それが助けてくれることを願っています:https://social.msdn.microsoft.com/Forums/en-US/b1a8bf14-4acd-4d77-9df8-bdb95b02dbe2/lets- talk-about-mvvm?forum = wpf – Christopher

関連する問題