我是WPF的新手。我想创建带有标准按钮的自定义工具栏,如下所示。当我从工具箱中拖放controll时,所有按钮都应自动添加文本和图像。我还想为每个按钮添加属性CommandName按钮和单击时我想在viewmodel中使用命令名称绑定命令。请帮助我吗?
<ToolBar VerticalAlignment="Top">
<Button>Add</Button>
<Separator></Separator>
<Button>Update</Button>
<Separator></Separator>
<Button>Delete</Button>
<Separator></Separator>
<Button>Clear</Button>
<Separator></Separator>
<Button>Logout</Button>
<Separator></Separator>
<Button>Excel</Button>
</ToolBar>
答案 0 :(得分:0)
您需要从here获得的RelayCommand类。
然后在ViewModel中创建一个RelayCommand,并将该命令与您的按钮绑定,如下所示
<Button Command="{Binding YourCommandName}">
所以基本上你需要一个自定义控件。 将这些按钮放在自定义控件的控件模板中。 公开这些按钮的点击事件。 让Add按钮的点击事件名称为ClickAdd。 然后将命令绑定到XAML中的Add按钮
<local:YourCustomControl>
<i:Interaction.Triggers>
<i:EventTrigger EventName="ClickAdd">
<i:InvokeCommandAction Command="{Binding YourCommandName}"> </i:InvokeCommandAction>
</i:EventTrigger>
</i:Interaction.Triggers>
</local:YourCustomControl>
的xmlns:I =&#34; CLR-名称空间:System.Windows.Interactivity;装配= System.Windows.Interactivity&#34;
答案 1 :(得分:0)
public class StToolBar:ToolBar
{
public StToolBar()
{
this.DefaultStyleKey = typeof(StToolBar);
}
}
Generic.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:local="clr-namespace:UserControl">
<Style TargetType="{x:Type local:StToolBar}">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type local:StToolBar}">
<ToolBar>
<Button>Add</Button>
<Button>Update</Button>
</ToolBar>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ResourceDictionary>