У меня есть обычай Button
следующим образом:WPF команда связывания для пользовательского UserControl
<UserControl...>
<Button HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="3*"/>
<ColumnDefinition Width="*"/>
</Grid.ColumnDefinitions>
<Viewbox Stretch="Uniform" Grid.Column="0">
<TextBlock x:Name="numCopyTB" Text="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type UserControl}}, Path=Text}"/>
</Viewbox>
<Viewbox Grid.Column="1">
<TextBlock Style="{StaticResource updownBlock}"/>
</Viewbox>
</Grid>
</Button>
</UserControl>
в коде позади, я добавил его Text
собственности. Код сзади ниже:
public partial class UpdownButton : UserControl
{
public static readonly DependencyProperty TextProperty =
DependencyProperty.Register("Text", typeof(string), typeof(UpdownButton));
public UpdownButton()
{
InitializeComponent();
}
public string Text
{
get { return GetValue(TextProperty) as string; }
set { SetValue(TextProperty, value); }
}
}
Я учусь о CommandBinding
и хотели бы быть в состоянии сделать что-то вроде <local:MyCustomButton Command="{Binding MethodName}"/>
.
Похоже, что мне нужно добавить Command
Недвижимость в код, но что Type
должно Command
быть? Я сделал несколько поисков, и, похоже, есть много возможностей: RoutedUICommand
, RoutedCommand
, CommandBinding
, DelegateCommand
и т. Д., И я совершенно потерян. Любая помощь приветствуется!
благодарит за ответ. если бы я использовал 'RelayCommand', мне все равно нужно было бы сделать что-то вроде' 'для привязки команды к кнопке, правильно? Проблема в том, что в настоящее время 'MyCustomButton' не имеет свойства' Command' (не отображается в intellisense). поэтому необходимо ли использовать интерфейс «ICommand» для использования «RelayCommand»? –
totoro
@green Hm - вы наследуете от Button в своей пользовательской кнопке? Я понимаю, что в наследовании от элемента управления вы наследуете все свойства зависимостей. – furkle
@green Hm, это, вероятно, невежество с моей стороны, но если вы пытаетесь сделать что-то, что работает почти как Button, но немного другое, почему бы просто не наследовать от Button? – furkle