【问题标题】:Button with 2 texts, binding via controltemplate带有 2 个文本的按钮,通过 controltemplate 绑定
【发布时间】:2012-11-06 12:46:37
【问题描述】:

我想做多个这样的按钮

<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>

所以我知道我必须使用模板之类的东西,并且我想将这些按钮绑定到这样的类:

class SearchButtonContent
{
    public string Shortcut { get ; set; }
    public string Text { get ; set; }
}

这样Shortcut 绑定到lblShortcutTextlblText。使用优雅的模板实现这一目标的最佳方法是什么,并且可以在运行时在代码中制作这些按钮?

【问题讨论】:

    标签: c# wpf data-binding controltemplate


    【解决方案1】:

    如果您以编程方式设置按钮的数据,则应使用 DataTemplate 类型的 ContentTemplate 属性

    您唯一需要做的就是为 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>
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-04-14
      • 2022-11-28
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多