2016-10-28 2 views
0

私はXAFを学んでおり、PropertyEditorの値にアクセスしてそれを変更する方法を知りたいと思います。私はPropertyEditorから値を取り出し、その値を別のPropertyEditorの値に入れたいと思います。私のコードは次のようである:XAF - PropertyEditorの値を変更する

Property Editor reserva = (PropertyEditor)((DetailView)View).FindItem("Reserva"); //This is a custom object 
PropertyEditor dni = (PropertyEditor)((DetailView)View).FindItem("Dni");//This is a simple text editor 
PropertyEditor dniReserva = (PropertyEditor)reserva.View.FindItem("Dni");//This is a variable from the custom object 
dni.PropertyValue = dniReserva.ControlValue; 

これは、任意のアイデアは動作しませんか?ありがとうございます

答えて

1

非永続プロパティの値を別の非永続プロパティにコピーすることについてお話ししていますか?それ以外の場合は、実際のプロパティ(here)を編集するのではなく、実際のプロパティを使用して値をコピーするより適切な方法があると信じています。あなたが実際にこれを必要とするしかし、もし は、私はあなたがのViewControllerを作成し、XAFの各プロパティエディタには、ビジネス・オブジェクトの特定のプロパティから値を読み取り、この

 foreach (PropertyEditor editor in ((DetailView)View).GetItems<PropertyEditor>()) 
     { 
      var control = editor.Control as IntegerEdit; 
      if (control != null) 
      { 
        if (editor.Id == "Id" || editor.Caption == "Id") 
        { 
         control.Enabled = false; 
        }   
      } 
     } 
+0

あなたは私が欲しいものを理解するのを助けます、ありがとうございます。リンクはとても便利でした! – mrvinent

1

ようなPropertyEditorプロパティを使用することができます信じています。この特異性によって、特定のプロパティの値を別のプロパティにコピーする作業が減ります。

ViewControllerでは、View.CurrentObjectプロパティを使用して現在のビジネスオブジェクトにアクセスできます。プロパティが適切な値で更新されると、新しい値が直ちにプロパティエディタに表示されます。

ビジネスオブジェクトがINotifyPropertyChangedインターフェイスを実装していない場合(たとえば、Entity Frameworkコードファーストを使用している場合など)、View.Refreshメソッドを呼び出して、新しい値をエディタに表示することもできます。

関連する問題