2010-09-01 200 views
1

我有2個表Main和Maintest。我使用nhibernate從數據庫中提取數據,並且連接兩個表以從兩個表中獲取字段。現在,我的最終對象具有來自兩個表的數據。現在,當我調試我的應用程序時,我可以看到Main有2條記錄,Maintest有5條記錄。但不知何故,我無法顯示來自Maintest的記錄。WPF XAML綁定

<DataTemplate x:Key="myTaskTemplate"> 
      <StackPanel Orientation="Vertical"> 
       <TextBlock Text="{Binding FirstName}"/> 
      </StackPanel> 
     </DataTemplate> 

</Window.Resources> 
<StackPanel> 
    <ListBox ItemsSource="{Binding Main}" ItemTemplate="{StaticResource myTaskTemplate}" Height="200" Width="200" /> 

    <toolkit:DataGrid ItemsSource="{Binding Main.Maintest}" Margin="3" 
          AutoGenerateColumns="False" 
          CanUserAddRows="False" CanUserDeleteRows="False" 
          CanUserReorderColumns="False" CanUserResizeRows="False"> 
     <toolkit:DataGrid.Columns> 
      <toolkit:DataGridTextColumn Header="#" 
              Binding="{Binding Number}"/> 
      <toolkit:DataGridTextColumn Header="Airline" 
              Binding="{Binding Code}"/> 

     </toolkit:DataGrid.Columns> 
    </toolkit:DataGrid> 
</StackPanel> 

NHibernate Mapping: 
<class name="Main" lazy="false"> 
     <id name="ID" type="Int32"> 
      <generator class="native"/> 
     </id> 
<set name="Maintest" inverse="true"> 
      <key column="Ticket" on-delete="cascade" /> 
      <one-to-many class="Segment" /> 
     </set> 

.... 我能夠顯示列表框記錄,但沒有工具的記錄。雖然我可以看到對於每個Main記錄,我的對象在Maintest中有3個或更多記錄。

回答

1

東西划不來了......

ListBox.ItemsSource需要某種類型的IEnumerable的 - 這意味着該屬性主要必須是某種IEnumerable的呢?

所以,如果你正在尋找的是一個主從一種觀點 - 你需要更改XAML兩個控制這樣的 - 一切應罰款:

<ListBox Name="Main" .../> 
<toolkit:DataGrid ItemsSource="{Binding SelectedItem.Maintest,ElementName=Main}" .../> 

這將使DataGrid綁定到ListBox中選定任何對象的MainTest屬性。

查找到Bea Costa如果你真的需要得到漂亮與主詳細方案。

希望這會有所幫助!