0

希望有人能指出我正确的方向。我有一个程序,允许用户从各种表单中选择各种提要,他们可以选择的提要来自 Access 数据库中的数据表,该数据表被放入 WPF 中的 CollectionViewSource 中。如:

<CollectionViewSource x:Key="BrandsViewSource" Source="{Binding Path=brands,
 Source={StaticResource DatabaseDataSetall}}"/>

他们选择的所有提要在“id”列下都有一个唯一的 id,当他们从程序中的各种列表中选择时,他们选择的 id 被添加到名为“feedselections”的数组列表中。

我在程序内部传递了数组列表,不用担心,但我需要做的是在 WPF 中使用数组列表“feedselection”的内容填充一个列表框,然后它需要填写列表框中的所有额外字段。列表框的代码是:

<Grid Width="800" Height="80" Background="#FFE7AE4A">
        <Label Content="{Binding Type}" HorizontalAlignment="Left" Height="27" Margin="8,8,0,0" VerticalAlignment="Top" Width="100" Name="typelabel" Foreground="#FFA4CE52" FontWeight="Bold"/>
        <Label Content="{Binding Name}" HorizontalAlignment="Left" Height="27" Margin="115,8,0,0" VerticalAlignment="Top" Width="133"/>
        <TextBox HorizontalAlignment="Left" Margin="169,35,0,17" TextWrapping="Wrap" Text="" VerticalAlignment="Stretch" Width="78" Name="foodamount"/>
</Grid>

我不确定是否最好用所有选择填充列表框,然后使用不在数组中的 collectionviewsource.filter 过滤掉选择。如果我采用该选项,我不确定是否应该使用数组、arraylist、list(of t) 或其他一些选项。

或者,我可以用数组中的所有项目填充列表框,然后以某种方式绑定其他框以使用“id”从 collectionviewsource 获取它们的数据,以从数据表中查找其余数据。

老实说,我不知道该怎么做。我花了很长时间寻找一种同时进行这两种选择的方法,但第一种似乎是最有希望的,除了无法找到从列表中过滤的人!

我在这个网站上找到了我试图使用过滤器的某人的代码,只是作为试验,我的数据,但我一直收到错误:

创建表单时出错。有关详细信息,请参阅 Exception.InnerException。错误是:'System.Windows.Data.CollectionViewSource' 的初始化引发了异常。行号“22”和行位置“55”

这是当我将 Filter="WorkerFilter" 添加到 collectionviewsource 时引起的:

<CollectionViewSource x:Key="FeedsViewSource" Source="{Binding Path=Feeds, 
Source={StaticResource DatabaseDataSetall}}" Filter="WorkerFilter"/>

过滤器处理程序是:

    Private Sub WorkerFilter(ByVal sender As Object, ByVal e As FilterEventArgs)
    Dim value As Object = CType(e.Item, System.Data.DataRow)("ID")
    If (Not value Is Nothing) And (Not value Is DBNull.Value) Then
        If (value = "4") Or (value = "5") Then
            e.Accepted = True
        Else

            e.Accepted = False
        End If
    End If
End Sub

对于大量的代码和写作感到抱歉,我只是想提供尽可能多的信息。

任何建议都将不胜感激,即使我必须在数据库中创建一个每次使用时都会被擦除的新表,然后我可以使用在数据库中构建的关系,我非常绝望并愿意尝试任何事情!

4

0 回答 0