Hi,
zuerst einmal, das Explorer Demo ist im Moment Baustelle - da im Moment noch an dem MVVM Part gearbeitet wird, habe ich da nicht weiter geschaut.
Zu der Checkbox und dem Edit.
Es funktioniert ähnlich wie in
Caliburn.Micro:
Delphi-Quellcode:
unit Unit1;
interface
uses
Classes,
DSharp.Bindings.VclControls,
DSharp.PresentationModel.ConventionManager,
DSharp.PresentationModel.VclConventionManager,
DSharp.PresentationModel.ElementConvention;
implementation
uses
DSharp.Core.Reflection;
type
ConventionManagerHelper =
record helper
for ConventionManager
class procedure Initialize;
static;
end;
{ ConventionManagerHelper }
class procedure ConventionManagerHelper.Initialize;
begin
AddElementConvention<TEdit>('
Text', '
OnChange').ApplyBinding :=
procedure(AViewModel: TObject; APropertyName:
string;
AViewElement: TComponent; ABindingType: TBindingType;
AConvention: TElementConvention)
begin
if AViewModel.HasProperty(AViewElement.
Name + '
Enabled')
then
SetBinding(AViewModel, AViewElement.
Name + '
Enabled', AViewElement, '
Enabled');
end;
end;
initialization
ConventionManager.Initialize;
end.
Das ist noch nicht ideal und wird sicherlich in der Zukunft auch noch verbessert, denn so kann man nur eine Convention pro Control Klasse festlegen.