将SelectedItem绑定到IsChecked

时间:2016-01-16 17:01:46

标签: powershell data-binding

我为复选框修改了listBox。我想将selectedItem绑定到支票上,以便我可以使用$WPFlbSiteList.SelectedItem作为选择要检查的商品的基础。

基本上,我已经生成了一个列表,我需要将检查等同于所选项目。此选定项目还需要以多选容量工作,而不是一次一个。

<ListBox x:Name="lbSiteList" SelectionMode="MultiExtended" Margin="355,45,411,1014" ItemsSource="{Binding .}">
     <ListBox.ItemTemplate>
           <DataTemplate>
               <CheckBox Content="{Binding .}" IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected}" Margin="2,2,0,0"/>
           </DataTemplate>
     </ListBox.ItemTemplate>
</ListBox>

我的功能是写入控制台选中了哪些选中的项目。

$WPFbtnUpdate.Add_Click({ 

    #List the sites that are ticked
    foreach ($WPFlbSiteList.Items in $WPFlbSiteList){

        $x=$WPFlbSiteList.SelectedItems

        write-host $x
    }
})

1 个答案:

答案 0 :(得分:1)

如评论中所述,您可以将复选框IsChecked值绑定到其相对祖先(列表框)的IsSelected,其中包含:

<CheckBox IsChecked="{Binding RelativeSource={RelativeSource AncestorType={x:Type ListBoxItem}}, Path=IsSelected" />

然而,您真正的问题似乎是您使用ListBox的无效值&#39; SelectionMode property

在WPF中,valid selection modes是:

Extended   - The user can select multiple consecutive items while holding down the SHIFT key.
Multiple   - The user can select multiple items without holding down a modifier key.
Single     - The user can select only one item at a time.