Binding WPF XAML绑定
我有两张主测试表和主测试表。我使用nhibernate从数据库中提取数据,并连接两个表以从这两个表中提取字段。现在,我的最终对象拥有来自这两个表的数据。现在,当我调试我的应用程序时,我可以看到我有来自Main的2条记录和来自Maintest的5条记录。但不知何故,我无法显示Maintest的记录Binding WPF XAML绑定,binding,Binding,我有两张主测试表和主测试表。我使用nhibernate从数据库中提取数据,并连接两个表以从这两个表中提取字段。现在,我的最终对象拥有来自这两个表的数据。现在,当我调试我的应用程序时,我可以看到我有来自Main的2条记录和来自Maintest的5条记录。但不知何故,我无法显示Maintest的记录 <DataTemplate x:Key="myTaskTemplate"> <StackPanel Orientation="Vertical">
<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属性
看看你是否真的需要掌握细节场景
希望这有帮助