How to set the Command property of the button part
Environment
Product Version | 2019.2.618 |
Product | RadButtons for WPF |
Description
How to bind the Command property of the RadButton element(the left part) inside the RadSplitButton.
Solution
Handle the Loaded event of the RadSplitButton, use the ChildrenOfType extension method in order to locate its RadButton child and set its Command property.
Example 1: Setting the Command of the RadButton inside the RadSplitButton
private void RadSplitButton_Loaded(object sender, RoutedEventArgs e)
{
var splitButton = (RadSplitButton)sender;
var buttonPart = splitButton.ChildrenOfType<RadButton>().FirstOrDefault(x => x.Name == "ButtonPart");
if (buttonPart != null)
{
buttonPart.Command = new DelegateCommand(OnExecute, OnCanExecute);
}
}
private bool OnCanExecute(object obj)
{
// If this method returns false, only the button part of the RadSplitButton will be disabled
return true;
}
private void OnExecute(object obj)
{
MessageBox.Show("Button clicked!");
}
Private Sub RadSplitButton_Loaded(ByVal sender As Object, ByVal e As RoutedEventArgs)
Dim splitButton = DirectCast(sender, RadSplitButton)
Dim buttonPart = splitButton.ChildrenOfType(Of RadButton)().FirstOrDefault(Function(x) x.Name = "ButtonPart")
If buttonPart IsNot Nothing Then
buttonPart.Command = New DelegateCommand(AddressOf OnExecute, AddressOf OnCanExecute)
End If
End Sub
Private Function OnCanExecute(ByVal obj As Object) As Boolean
' If this method returns False, only the button part of the RadSplitButton will be disabled
Return True
End Function
Private Sub OnExecute(ByVal obj As Object)
MessageBox.Show("Button clicked!")
End Sub