Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Binding WPF XAML绑定_Binding - Fatal编程技术网

Binding WPF XAML绑定

Binding WPF XAML绑定,binding,Binding,我有两张主测试表和主测试表。我使用nhibernate从数据库中提取数据,并连接两个表以从这两个表中提取字段。现在,我的最终对象拥有来自这两个表的数据。现在,当我调试我的应用程序时,我可以看到我有来自Main的2条记录和来自Maintest的5条记录。但不知何故,我无法显示Maintest的记录 <DataTemplate x:Key="myTaskTemplate"> <StackPanel Orientation="Vertical">

我有两张主测试表和主测试表。我使用nhibernate从数据库中提取数据,并连接两个表以从这两个表中提取字段。现在,我的最终对象拥有来自这两个表的数据。现在,当我调试我的应用程序时,我可以看到我有来自Main的2条记录和来自Maintest的5条记录。但不知何故,我无法显示Maintest的记录

<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>

NHibernate映射:
。。。。
我可以显示列表框记录,但不能显示工具箱记录。虽然我可以看到,对于每个主记录,我的对象在Maintest中确实有3条或更多记录。

有些东西不符合要求

<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>
ItemsSource接受某种IEnumerable—这意味着属性Main必须是某种IEnumerable

因此,如果您正在寻找的是一种主细节视图-您需要更改这两个控件的XAML,就像这样-其他一切都应该很好:

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

这将使DataGrid绑定到列表框中选择的任何obejct的MainTest属性

看看你是否真的需要掌握细节场景


希望这有帮助

有些东西不合逻辑

ItemsSource接受某种IEnumerable—这意味着属性Main必须是某种IEnumerable

因此,如果您正在寻找的是一种主细节视图-您需要更改这两个控件的XAML,就像这样-其他一切都应该很好:

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

这将使DataGrid绑定到列表框中选择的任何obejct的MainTest属性

看看你是否真的需要掌握细节场景

希望这有帮助