我想像这样制作多个按钮
<Button>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" name="lblShortcut">F1</Label>
<Label Grid.Column="1" name="lblText">search</Label>
</Grid>
</Button>
所以我知道我必须使用诸如Template之类的东西,并且我想将这些按钮绑定到这样的类上:
class SearchButtonContent
{
public string Shortcut { get ; set; }
public string Text { get ; set; }
}
这样,将
Shortcut
绑定到lblShortcut
,将Text
绑定到lblText
。用优雅的模板实现此目的的最佳方法是什么,并有可能在运行时在代码中创建这些按钮? 最佳答案
如果以编程方式设置按钮的数据,则应使用ContentTemplate属性,该属性为DataTemplate类型
您唯一需要做的就是为Button.Content分配SearchButtonContent类的实例。
<Button>
<Button.ContentTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*"></ColumnDefinition>
<ColumnDefinition Width="3*"></ColumnDefinition>
</Grid.ColumnDefinitions>
<Label Grid.Column="0" name="lblShortcut" Content="{Binding Shortcut }"/>
<Label Grid.Column="1" name="lblText" Content="{Binding Text}"/>
</Grid>
</DataTemplate>
</Button.ContentTemplate>
</Button>