Как получить и привязать данные к ListBox из SQLCe Db

Я вставил данные в базу данных SqlCe с помощью следующего кода:


using (DBContacts context = new DBContacts(ConnectionString))
            {
                TblContacts tblCtc = new TblContacts();

                tblCtc.FirstName = txtBoxFirstNm.Text;
                tblCtc.LastName = txtBoxLastNm.Text;
                tblCtc.Mobile1 = txtMobile1.Text;
                tblCtc.Email1 = txtEmail1.Text;

                context.TblContacts.InsertOnSubmit(tblCtc);
                context.SubmitChanges();

                MessageBox.Show("Inserted Ok.");


            }

Вопросы:

1) Как использовать выбор из Linq To SQL и отображать полученные данные?


 using (DBContacts context = new DBContacts(ConnectionString))
            {
              IEnumerable  ctc = from c in context.TblContacts select c;   


        // what to get the result and display ??

               // txtBlkFirstname.Text =   ctc.FirstName  ??
               // txtBlkLastname.Text = ctc.LastName    ??
               .....     

            }

1а) Что использовать? IQueryable или IEnumerable?

1b) Что возвращает оператор Select? Как обрабатывать возврат данных?

1c) Как получить данные из Iqueryable или IEnumerable и присвоить значения элементам управления TextBlock?

------ Как привязать данные к ListBox


person MilkBottle    schedule 22.07.2011    source источник
comment
Привет, могу я получить немного больше кода, чтобы я мог помочь вам   -  person Karan Shah    schedule 22.07.2011
comment
Буду признателен, если вы скажете мне, какую часть я пропустил. Я застрял во второй части: получение данных.   -  person MilkBottle    schedule 22.07.2011


Ответы (1)


public List<TblContacts> GetAllContact()
    {
        using (DBContacts context = new DBContacts(ConnectionString))
        var contacts = from m in context.TblContacts select m;
        return contacts.Take(100).ToList();
    }

Нечто подобное, которое я использую в своей службе WCF, должно работать и в вашем приложении, я надеюсь,

Попробуйте привязать источник списка к GetAllContacts(), а затем внутри этого списка привяжите свои данные к отдельным полям.

       <Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
        <StackPanel Name="contentP" Opacity="1">
            <ListBox Height="623" Margin="-20,0,0,0" Name="listBox1" Width="473">
                <ListBox.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Height="132">
                            <Image Source="{Binding ImageSource}" Height="75" Width="75" VerticalAlignment="Top" Margin="15,10,10,0"/>
                            <StackPanel Width="380">
                                <ContentControl Margin="0,10,0,0" HorizontalAlignment="Left">
                                    <HyperlinkButton HorizontalAlignment="Left" Style="{StaticResource HyperlinkButtonStyle}" Content="{Binding Title}" Foreground="#FFC8AB14" NavigateUri="{Binding Link}" TargetName="_blank"/>
                             </ContentControl>
                             <TextBlock Margin="10,10,30,0" Text="{Binding Message}" Foreground="{StaticResource PhoneAccentBrush}" TextWrapping="Wrap" FontSize="20" />
                            </StackPanel>
                        </StackPanel>
                    </DataTemplate>
                </ListBox.ItemTemplate>
            </ListBox>
        </StackPanel>           
    </Grid> 

в вашем коде вы должны установить ItemsSource "listbox1" в источник вашего DBQuery, не уверен, как вы это сделаете в своем случае, поскольку я делаю это с помощью моей службы WCF, но это что-то похожее на это

listbox1.ItemsSource = (result of your query ("e.Result;");
person John Antony Daniel Nolan    schedule 22.07.2011
comment
Можете ли вы показать мне, как привязать данные к ListBox с TextBlock внутри? Как ‹listBox› ‹dataTemplate› ‹textBlock›....‹/Listbox› что включить для привязки в textBlock? Спасибо - person MilkBottle; 23.07.2011