简体   繁体   English

如何通过XAML手动将静态项绑定到SplitButton(错误)

[英]How to manually bind static Items to SplitButton (mahapps) via XAML

How do i manually add for example 2 items (buttons) from which the first is preselected via xaml? 如何手动添加例如通过xaml从中预选第一个的2个项目(按钮)? Like: 喜欢:

<controls:SplitButton SelectedIndex="0">
    <controls:SplitButton.Items>
        <Button Content="Button 1"/>
        <Button Content="Button 2"/>
    </controls:SplitButton.Items>
</controls:SplitButton>

Documentation tells me to use ItemsSource Binding but there is no example of the code behind. 文档告诉我使用ItemsSource Binding,但是后面没有代码示例。

This is the XAML: 这是XAML:

<controls:SplitButton x:Name="splitButton" 
        SelectedIndex="1" 
        HorizontalAlignment="Left" 
        VerticalAlignment="Top" 
        Grid.Column="1">
    <controls:SplitButton.ItemTemplate>
        <DataTemplate>
            <Grid>
                <TextBlock HorizontalAlignment="Left" 
                        TextWrapping="Wrap" 
                        Text="{Binding Text}" 
                        VerticalAlignment="Top"/>
            </Grid>
        </DataTemplate>
    </controls:SplitButton.ItemTemplate>
</controls:SplitButton>

This is the code behind: 这是背后的代码:

class SplitButtonItem
{
    public string Text { get; set; }
}

public MainWindow()
{
    InitializeComponent();

    var button1 = new SplitButtonItem() { Text = "Item 01", };
    var button2 = new SplitButtonItem() { Text = "Item 02", };
    var buttonList = new List<SplitButtonItem>() 
    {
        button1, 
        button2,
    };
    splitButton.ItemsSource = buttonList;
}

This is how it look at runtime: 这是运行时的样子:

这就是运行时的样子

Is this what you're looking for? 这是您要找的东西吗?

You can use the ItemsSource and an enumerable and don't specify a DisplayMemberPath . 您可以使用ItemsSource和可枚举的对象,并且不指定DisplayMemberPath

<controls:SplitButton HorizontalContentAlignment="Left"
                        HorizontalAlignment="Center"
                        VerticalContentAlignment="Center"
                        Width="120"
                        VerticalAlignment="Top">
    <controls:SplitButton.ItemsSource>
        <x:Array Type="system:String">
            <system:String>Label 1</system:String>
            <system:String>Another one</system:String>
            <system:String>Works now</system:String>
        </x:Array>
    </controls:SplitButton.ItemsSource>
</controls:SplitButton>

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM