如何引发绑定到ListBox项的WPF命令?

时间:2012-12-20 12:31:07

标签: wpf xaml data-binding command

我的Excel加载项项目中有一个WPF UserControl。此控件有ListBoxStackPanel,带有两个按钮。 ListBox由项目组成,每个项目对应一个Excel工作簿表。我们还有两个隐藏/显示工作表的命令,然后检查/取消选中CheckBox个。这部分很好。

问题是如何将这些现有命令绑定到下面的stackpanel中的按钮。我们有必要在ListBox中多选几个项目,然后单击按钮并获得结果。

XAML代码:

<UserControl x:Class="ListsAddin.ListManagementControl"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">

    <UserControl.Resources>
        <Style x:Key="CheckBoxStyle" TargetType="{x:Type CheckBox}">                
                <Trigger Property="IsChecked" Value="True">
                    <Setter Property="Command" Value="{Binding HideSheetCommand}"/>
                </Trigger>

                <Trigger Property="IsChecked" Value="False">
                    <Setter Property="Command" Value="{Binding ShowSheetCommand}"/>
                </Trigger>               
            </Style.Triggers>
        </Style>
    </UserControl.Resources>

    <StackPanel >
        <ListBox Name="lb" ItemsSource="{Binding lst}" Margin="0,0,0,7" >

            <ListBox.ItemTemplate>    
                <DataTemplate>
                    <StackPanel Orientation="Horizontal">
                        <Label Content="{Binding Path=SheetName}"/>
                        <CheckBox IsChecked="{Binding Path=IsHidden}"
                  Style="{StaticResource CheckBoxStyle}"/>
                    </StackPanel>
                </DataTemplate>
            </ListBox.ItemTemplate>
        </ListBox>

        <StackPanel>
            <Button Content="HideSheet"  Command="{ ?? }"/>
            <Button Content="ShowSheet" Command="{ ?? }" />
        </StackPanel>
    </StackPanel>
</UserControl>

0 个答案:

没有答案