RemoveHandler(oldCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged)
AddHandler(newCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged)
Du behöver () skulle jag gissa.
2 svar · 371 visningar · startad av Nickemannen
Jag har denna koden jag vill översätta till VB.NET kod.
private static void OnCommandChanged(DependencyObject d, DependencyPropertyChangedEventArgs e)
{
CommandReference commandReference = d as CommandReference;
ICommand oldCommand = e.OldValue as ICommand;
ICommand newCommand = e.NewValue as ICommand;
if (oldCommand != null)
{
oldCommand.CanExecuteChanged -= commandReference.CanExecuteChanged;
}
if (newCommand != null)
{
newCommand.CanExecuteChanged += commandReference.CanExecuteChanged;
}
}
Allt fungerar jättebra förutom dessa rader.
oldCommand.CanExecuteChanged -= commandReference.CanExecuteChanged;
newCommand.CanExecuteChanged += commandReference.CanExecuteChanged;
Såhär har jag försökt att göra men det fungerar inte
RemoveHandler oldCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged
AddHandler newCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged
Den klagar på att commandReference.CanExecuteChanged inte är någon metod.
Men varför fungerar det då i C#? Det är egentligen ytterligare ett event så jag antar att man kedjar eventsen med varandra i C# men det borde ju även gå att göra något liknande i VB?
RemoveHandler(oldCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged)
AddHandler(newCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged)
Du behöver () skulle jag gissa.
RemoveHandler(oldCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged) AddHandler(newCommand.CanExecuteChanged, AddressOf commandReference.CanExecuteChanged)Du behöver () skulle jag gissa.
Samma fel