結合我有一個自定義Button
如下:WPF命令自定義用戶控件
<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}"/>
。
看來我需要在codebehind中添加一個Command
屬性,但Type
應該是Command
是什麼?我做了一些搜索,似乎有很多的可能性:RoutedUICommand
,RoutedCommand
,CommandBinding
,DelegateCommand
等,我很迷茫。任何幫助表示讚賞!
感謝您的回覆。如果我要使用'RelayCommand',我仍然需要做一些類似' '來將命令「綁定」到按鈕,對吧?問題是目前'MyCustomButton'沒有'Command'屬性(不會在intellisense中顯示)。那麼爲了使用'RelayCommand',有必要實現'ICommand'接口嗎? –
totoro
2014-11-01 05:58:52
@green Hm - 你是否繼承自定義按鈕中的按鈕?我的理解是,從繼承控件繼承所有的依賴屬性。 – furkle 2014-11-01 06:00:11
@green Hm,這可能對我來說是無知的,但是如果你正在努力做出幾乎像Button一樣的東西,但有點不同,爲什麼不從Button繼承呢? – furkle 2014-11-01 06:10:18