0

私はこの例に取り組んでいます: http://code.msdn.microsoft.com/wpapps/Beginners-for-how-to-use-45690caa

「カテゴリ」と呼ばれる新しい列をテーブルに挿入しました

今、リストボックスにカテゴリ==「カード」の行のみを表示する必要があります

これはリストボックスです:

<ListBox x:Name="ContactListBox" Grid.Row="2">
                        <ListBox.ItemTemplate>
                            <DataTemplate>
                                <Grid>
                                    <Grid.ColumnDefinitions>
                                        <ColumnDefinition Width="100" />
                                        <ColumnDefinition Width="200" />
                                        <ColumnDefinition Width="*" />
                                    </Grid.ColumnDefinitions>
                                    <Image Source="Images\open.png" Margin="-30, -18, 0, 0" Tap="Edit_Tap" Height="75" Width="75"/>
                                    <TextBlock Text="{Binding Name}" Tap="Edit_Tap" Grid.Column="1" FontSize="{StaticResource PhoneFontSizeLarge}" TextAlignment="Left"/>
                                </Grid>
                            </DataTemplate>
                        </ListBox.ItemTemplate>
                    </ListBox>

これはリストボックスのソースです:

void Customers_Loaded(object sender, RoutedEventArgs e)
    {
        using (AddressBookDataContext dc = new AddressBookDataContext())
        {

            ContactListBox.ItemsSource = from c in dc.Contacts select c;

        }
    }

私はそれを変更しようとしました: ContactListBox.ItemsSource = from c in dc.Contacts where c.category == "card" select c; しかし、私は動作しません、私は何ができますか?

みんなありがとう。下手な英語でごめんなさい

4

1 に答える 1

0

どの例外が発生したかについては言及していませんが、おそらく「NotSupportedException: the member "[whatever]" has no supported translation to SQL error」が発生しているようです。

この例外を検索すると、共通のテーマに沿った多くの回答が見つかります。基本的に、Linq2SQL は「型」を SQL に変換する方法を知らないため、失敗します。あなたの場合、Linq2SQL と Linq2Object を使用してこれを修正できます。

// L2S from the DB, transferred to an Enumerable
var itemSource = (from c in dc.Contacts select c).AsEnumerable();

ContactListBox.ItemsSource = itemSource.Where(c => c.Type == "q");

// or full form Linq
ContactListBox.ItemsSource = from c in itemSource where c.Type == "q" select c;

私の場合、列を追加しませんでした。異なる s を持つ複数の連絡先を追加し、 「q」Typeのものだけをフィルタリングしました。Type

于 2013-06-17T16:27:37.970 に答える