首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使WPF ListBoxItems可选

使WPF ListBoxItems可选
EN

Stack Overflow用户
提问于 2009-10-07 06:57:22
回答 1查看 1.3K关注 0票数 4

我有一个ListBox,它定义了一个相当简单的ItemTemplate --包含一个TextBlock和一个Button。这和预期的一样,但是有一个问题。当我单击ListBoxItem的内容,即文本或按钮时,该行在ListBox中不会被选中。如果我单击行的空白部分,它就会这样做。当我单击行上的任意位置时,我希望选择ListBoxItem。要实现这一点需要什么?

代码语言:javascript
复制
<ListBox ItemsSource="{Binding SomeElements}">
    <ListBox.ItemTemplate>
        <DataTemplate>
            <ListBoxItem Selected="ListBoxItem_Selected">
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Title}"></TextBlock>
                    <Button>Click</Button>
                </StackPanel>                                                
            </ListBoxItem>                                            
        </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2009-10-07 08:40:45

@Natrium不,这里的问题不同,

  1. 您需要在DataTemplate中删除ListBoxItem。DataTemplate不能有item ListBoxItem,它将无法正常工作。您在DataTemplate中定义的任何内容都会在运行时自动放入ListBoxItem中,因此在您的示例中,将创建以下内容。

ListBoxItem DataTemplate ListBoxItem StackPanel...

  1. 如果你想跟踪选择事件,那么你应该只捕获ListBox.SelectionChange事件,你不需要跟踪selection事件

将您的代码更改为以下代码。

代码语言:javascript
复制
<ListBox ItemsSource="{Binding SomeElements}">
    <ListBox.ItemTemplate>
        <DataTemplate>
                <StackPanel Orientation="Horizontal">
                    <TextBlock Text="{Binding Title}"></TextBlock>
                    <Button>Click</Button>
                </StackPanel>
         </DataTemplate>
    </ListBox.ItemTemplate>
</ListBox>
票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1529956

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档