2016-10-28 2 views
0

Ich lerne XAF und möchte wissen, wie man auf den Wert eines PropertyEditors zugreifen kann, um ihn zu ändern. Ich möchte den Wert von einem PropertyEditor übernehmen und diesen Wert in einen anderen PropertyEditor-Wert eingeben. Mein Code ist wie folgt:XAF - Wert eines PropertyEditors ändern

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; 

Das funktioniert nicht, irgendwelche Ideen? Danke

Antwort

1

Sprechen Sie über das Kopieren des Werts einer nicht persistenten Eigenschaft in eine andere nicht persistente Eigenschaft? Weil ich in jedem anderen Fall glaube, dass es geeignetere Möglichkeiten gibt, einen Wert zu kopieren, arbeiten Sie mit den tatsächlichen Eigenschaften (here ist eine nützliche Antwort, um Ihnen dabei zu helfen) und nicht die Editoren. Wenn Sie jedoch tatsächlich diesen brauchen, glaube ich Ihnen einen Viewcontroller schaffen könnten und die Property Eigenschaften wie diese

 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

Sie helfen mir zu verstehen, was ich wollte, danke. Der Link war sehr nützlich! – mrvinent

1

Jeder Eigenschaftseditor in XAF Wert aus der spezifischen Eigenschaft des Business-Objekts liest verwenden. Diese Spezifität reduziert Ihre Aufgabe, den Wert der spezifischen Eigenschaft in einen anderen zu kopieren.

Im ViewController können Sie mit der Eigenschaft View.CurrentObject auf das aktuelle Business-Objekt zugreifen. Sobald die Eigenschaft mit einem geeigneten Wert aktualisiert wurde, wird der neue Wert sofort im Eigenschafteneditor angezeigt. Wenn das Geschäftsobjekt die INotifyPropertyChanged-Schnittstelle nicht implementiert (z. B. wenn Sie Entity Framework Code zuerst verwenden), können Sie auch die Methode View.Refresh aufrufen, um neue Werte im Editor anzuzeigen.

Verwandte Themen