代码之家  ›  专栏  ›  技术社区  ›  oltman

数据模板化的列表框项对鼠标单击没有响应

  •  0
  • oltman  · 技术社区  · 15 年前

    我正在尝试创建一个列表框,其中项的文本绑定到其项源中对象的RegionName属性。这将按原样显示,但单击绑定创建的文本不会将ListBoxItem的状态更改为“已选定”(尽管在文本选择项后单击空格)。当使用 DisplayMemberBinding 属性或设置时 Content 随机选择数据模板中的静态文本(单击文本选择列表框项)。但是,我想使用转换器来设置单个项目的文本颜色(不同的项目将是不同的颜色),因此我似乎必须使用数据模板,它不能与 显示成员绑定 财产。还有人遇到过这个问题吗?

    列表框的XAML:

                <ListBox x:Name="x_UpdateAreaListBox" Margin="0,0,0,10" SelectionChanged="x_UpdateAreaListBox_SelectionChanged" >
                    <ListBox.ItemTemplate>
                        <DataTemplate>
                            <ListBoxItem Content="{Binding Path=regionName}"/>
                        </DataTemplate>
                    </ListBox.ItemTemplate>
                </ListBox>
    
    2 回复  |  直到 15 年前
        1
  •  2
  •   Jobi Joy    15 年前

    将DataTemplate中的ListBoxItem替换为TextBlock或ContentControl。ListBox本身已经生成了ListBox项,因此DataTemplate中不必要的ListBoxItem会占用鼠标事件,这就是为什么您看到异常行为的原因。

        2
  •  2
  •   micahtan    15 年前

    您将要使用标签或文本块而不是ListBoxItem。列表框将自动为您的数据模板化数据生成容器。

    here 有关生成项容器的详细信息。