【问题标题】:wpf checked list box questionwpf选中列表框问题
【发布时间】:2009-11-28 05:39:14
【问题描述】:

我正在使用以下模板创建选中的列表框:

<Style x:Key="CheckBoxListStyle" TargetType="{x:Type ListBox}">
            <Setter Property="SelectionMode" Value="Multiple"></Setter>
            <Setter Property="ItemContainerStyle">
                <Setter.Value>
                    <Style TargetType="{x:Type ListBoxItem}" >
                        <Setter Property="Margin" Value="2" />
                        <Setter Property="Template">
                            <Setter.Value>
                                <ControlTemplate TargetType="{x:Type ListBoxItem}">
                                    <CheckBox IsChecked="{Binding Path=xxxxxxxxxxx,RelativeSource={RelativeSource TemplatedParent},Mode=TwoWay}">                                                                             <ContentPresenter></ContentPresenter>
                                    </CheckBox>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
        </Style>

 <ListBox Style="{StaticResource CheckBoxListStyle}" ItemsSource="{Binding Path=Configuration.ProductTypes}" DisplayMemberPath="ProductName" />  

我的问题是,我从数据库中获取所有产品类型并将其绑定到列表框项目源。我有一个产品类,其中包含它所属的产品类型列表。我需要根据产品的产品类型列表设置复选框的 IsChecked 属性。通常我需要设置一个或多个复选框 IsChecked 属性。产品可能属于一种或多种产品类型。选择模式是多选。如果用户选中其他产品类型复选框..我需要获取总选中列表框并将它们保存到数据库中......这是一个 MVVM WPF 应用程序......关于如何解决这种情况的任何想法...... 在控制模板中 IsChecked 的路径是什么?

谢谢 雷伊

让我把我的问题简单化一下:我需要一个带有复选框和文本块的列表框。文本块数据上下文不同,复选框数据上下文不同。我的意思是他们从不同的对象获取数据。不知道如何实现这一点...

【问题讨论】:

    标签: wpf checkedlistbox


    【解决方案1】:

    让我简单化我的问题:我需要一个 带有复选框和文本块的列表框。 文本块数据上下文不同 并且复选框数据上下文是 不同的。我的意思是他们得到他们的数据 来自不同的对象。不知道怎么做 实现这个...

    创建一个新类(一个 ViewModel),其中包含两个数据上下文(Model1 和 Model2)并将数据绑定到它,也称为 MVVM 模式。

    【讨论】:

      【解决方案2】:

      您绑定到 ListBox 的 ProductType 类应该有一个可以绑定到的名为 IsSelected 或 IsChecked 的读/写属性。然后,不要使用 ControlTemplate,而是在 ListBox.ItemTemplate 上使用 DataTemplate,并将 CheckBox 的 IsChecked 属性绑定到该属性。

      【讨论】:

      • ProductType 包含数据库中所有可能的产品类型。基于产品 ID,我将从数据库中获得一个产品对象,其中包含它所属的产品类型的子列表。没有 isselected 或 ischecked 属性。我将有一个产品名称和 ID。我会调查数据模板的事情..谢谢...
      猜你喜欢
      • 2010-12-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-08-02
      • 2011-08-09
      相关资源
      最近更新 更多