2013-11-15 3 views
0

이 질문에 이전에 질문이 있지만 해결책을 찾지 못해서 죄송합니다.WCF DataService를 사용한 WPF Combobox/Listview/Listview 링크

표준 Northwind DataService를 사용하여 CustomerID를 표시하는 Combobox가 있으며,이 CustomerID와 관련된 Orders를 표시하는 Listview에 대한 성공적인 링크가 있습니다. 그러나 두 번째 Listview 주문 목록보기에서 SelectedItem 함께 연결된 Order_Details 표시하려면이 ListView 비어 있으며 선택한 순서 정보를 있어야합니다 오류입니다. 이 인구가 '적재'에서 발생하기를 원합니다.

두드러진 테이블 세부 정보는 Customers (CustomerID), Orders (CustomerID, OrderID), Order_Details (OrderID)입니다. 일부 버튼이 있습니다

<StackPanel> 
    <Label Content="Customer ID" />   
    <ComboBox Name="customerIDComboBox" 
       DisplayMemberPath="CustomerID" 
       ItemsSource="{Binding}" 
       IsSynchronizedWithCurrentItem="True" 
       SelectedIndex="0" />   

    <ListView Name="ordersListView" 
       ItemsSource="{Binding Path=Orders}" 
       DisplayMemberPath="OrderID" 
       IsSynchronizedWithCurrentItem="True" 
       SelectedItem="0" > 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding Path=OrderID, Mode=OneWay}" 
        Header="Order ID" Width="75"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Path=OrderDate, Mode=TwoWay}" 
        Header="Order Date" Width="150"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Path=Freight, Mode=TwoWay}" 
        Header="Freight Cost" Width="75"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 

    <ListView Name="detailsListView" 
       ItemsSource="{Binding Path=Order_Details}" 
       DisplayMemberPath="OrderID" 
       IsSynchronizedWithCurrentItem="True" 
       SelectedItem="0" > 
     <ListView.View> 
      <GridView> 
       <GridViewColumn DisplayMemberBinding="{Binding Path=OrderID, Mode=OneWay}" 
        Header="Order ID" Width="75"/> 
       <GridViewColumn DisplayMemberBinding="{Binding Path=ProductID, Mode=TwoWay}" 
        Header="Product ID" Width="75"/> 
      </GridView> 
     </ListView.View> 
    </ListView> 
</StackPanel> 

하지만 내 문제와 관련이없는 :

여기 내 XAML 코드입니다.

여기에 내 뒤에 코드입니다 : 내가 아는 내 자신의 질문에 대답

private void Window_Loaded(object sender, RoutedEventArgs e) 
{ 
    try 
    { 
     context = new NorthwindEntities(new Uri(svcUri)); 

     var customerQuery = from cust in context.Customers.Expand("Orders/Order_Details") 
          select cust; 

     trackedCustomers = new DataServiceCollection<Customer>(customerQuery, 
                  TrackingMode.AutoChangeTracking, 
                   "Customers", 
                   OnPropertyChanged, 
                   OnCollectionChanged); 
     this.LayoutRoot.DataContext = trackedCustomers; 
    } 
    catch (DataServiceQueryException ex) 
    { 
     MessageBox.Show("The query could not be completed:\n" + ex.ToString()); 
    } 
    catch (InvalidOperationException ex) 
    { 
     MessageBox.Show("The following error occurred:\n" + ex.ToString()); 
    } 
} 
+1

그래서 ... 무엇이 문제입니까? – Noctis

+0

문제는 콤보 상자 (Customers)와 첫 번째 ListView (Orders)가 완벽하게 채워지지만 ListView (Details)는 비어 있다는 것입니다. – maz

+0

DB를 설치하지 마십시오. 질문에 대해 신경 쓰지 않아도되는 너비, 최소 높이, 여백 등 많은 문제가 있습니다. 코드를 읽는 것이 더 어렵습니다. Alas는'detailsDataGrid'에서'SelectedItem = "0"'을 누락시킨 것입니까? – Noctis

답변

0

,하지만 그것을 닫습니다.

<ListView Name="detailsListView" 
      ItemsSource="{Binding Path=Order_Details}" 
      DisplayMemberPath="OrderID" 
      IsSynchronizedWithCurrentItem="True" 
      SelectedItem="0" > 

로 대체해야합니다

이 콤보/목록 상자/목록 상자의 인구를 해결하기 리드
<ListView Name="detailsListView" 
      ItemsSource="{Binding Path=Orders/Order_Details}" 
      DisplayMemberPath="OrderID" 
      IsSynchronizedWithCurrentItem="True" 
      SelectedItem="0" > 

.