ListBox里面的CheckBox

时间:2011-09-14 04:00:41

标签: wpf listbox

在sqlserver中我有两个表:'Employee''PayType'
'PayType'字段为:

 1. PayTypeId  int.
 2. PayTypeName nvarchar(15).

'Employee'文件是:

1. EmpId int.
 2. Name  nvarchar(30).

由于每个员工都可以有多个PayType,因此我添加了一个'PayTypeIds'字段nvarchar(50)数据类型,其中存储了paytypeids - PayTypeId和','分隔符 - 。

在C#WPF应用程序中我添加了一个列表框:

<ListBox x:Name="lstPayType" ItemsSource="{Binding PayTypeList}" Width="194" HorizontalAlignment="Left" 
         Margin="471,314,0,0" Height="86" VerticalAlignment="Top">
    <ListBox.ItemTemplate>
        <HierarchicalDataTemplate>
            <StackPanel Orientation="Horizontal">
                <CheckBox  Content="{Binding PayTypeName}">

                </CheckBox>
            </StackPanel>
        </HierarchicalDataTemplate>
    </ListBox.ItemTemplate>
</ListBox>

现在我的问题是这些:

  1. 如何使用转换器来显示复选框的缺陷属性以显示来自sqlserver的数据
  2. 如何将这些chekboxes数据发送到数据库

  3. 谢谢你'RredCat' 请假设我们有两名员工:{100,'Joe'} ,{101,'Frank'} 并且有三种PayTypes:{200,'Hourly'},{201,'Weekly'},{202,'Mounthly'}

    并且第一个emplyoo有两个paytypeid所以我们有:{100,'joe','200,201'} 对于第二位员工:{101,'Frank','200,201,202'}

    现在有了以上数据,我可以向您解释如何处理您的答案?

1 个答案:

答案 0 :(得分:0)

我认为你使用糟糕的方法。 随你。 使用“名称”和“值”属性创建PayType实体。 对于Employee实体,创建属性List<PayType> PayTypeList。将PayTypeIds中的数据映射到此属性。将列表框绑定到此属性,不带任何转换器。写下项目的下一个代码:

<CheckBox Content="{Binding Name}" IsChecked="{Binding Value, Mode=TwoWay}">

似乎最好为PayTypeIds属性使用带标记的枚举。