WPF и SQL Server 2008 R2 БД - PullRequest
       0

WPF и SQL Server 2008 R2 БД

0 голосов
/ 25 января 2012

Теперь, когда я нажимаю кнопку, данные не отображаются в списке, какая-нибудь помощь? я хочу получить данные из базы данных и показать их в списке, чтобы пользователь мог выбирать элементы из них. Я использую WPF и SQL Server 2008 R2 ..

private void button1_Click (отправитель объекта, RoutedEventArgs e) {

        SqlConnection myConnection = new SqlConnection("user id=userid;" +
                                   "password=password;server=localhost;" +
                                   "Trusted_Connection=yes;" +
                                   "database=db1; " +
                                   "connection timeout=30");

        DataSet ds = new DataSet();
        SqlDataAdapter da = new SqlDataAdapter();
        try
        {
            myConnection.Open();

        }
        catch (Exception ex)
        {
            textBlock1.Text = "" + (ex.ToString());
        }

        da.SelectCommand = new SqlCommand("Select * FROM Products", myConnection);
        da.Fill(ds,"Products");
        listBox1.DataContext = ds;

    }

Ответы [ 2 ]

1 голос
/ 25 января 2012

Вы должны определить свои привязки, установка только DataContext не заполняет данные, она просто объявляет источник, откуда поступают связанные данные.

<ListBox ItemsSource="{Binding Tables[0]}">
  <ListBox.ItemTemplate>
    <DataTemplate>
      <TextBlock Text="{Binding ProductName}"/>
    </DataTemplate>
  </ListBox.ItemTemplate>
</ListBox>

или если вы просто хотите отобразитьодно значение в вашем списке:

<ListBox ItemsSource="{Binding Tables[0]}" DisplayMemberPath="ProductName"/>
1 голос
/ 25 января 2012

Во-первых, это, вероятно, легче связать с itemsSource, чем с datacontext

Во-вторых, вы пытаетесь привязать свой список прямо к набору данных, что я не считаю возможным. Я хотел бы создать свойство dataview и установить его в ds.Tables [0] .DefaultView. Затем в вашем списке XAML код, чтобы показать столбцы положить:

<ListView ItemsSource="{Binding Path=myDataViewProperty}">
    <ListView.View>
        <GridView>
            <GridViewColumn Header="Column1"  DisplayMemberBinding="{Binding Column1}"/>
            <GridViewColumn Header="Column2" DisplayMemberBinding="{Binding Column2}"/>
        </GridView>
    </ListView.View>
</ListView>

в-третьих, вы уверены, что список является наиболее подходящим элементом управления для того, что вы хотите отобразить? сетка данных может быть лучшим выбором.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...