开发者

WPF XAML Binding

开发者 https://www.devze.com 2023-01-14 06:14 出处:网络
I have 2 tables Main and Maintest. I am using nhibernate to pull data from database and am joining 2 tables to fetch the fields from both.Now my final object has data from both the tables. Now when I

I have 2 tables Main and Maintest. I am using nhibernate to pull data from database and am joining 2 tables to fetch the fields from both.Now my final object has data from both the tables. Now when I debug my app I can see that I have 2 records from Main and 5 records from Maintest. But somehow I am not able to display records from 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 Num开发者_JAVA技巧ber}"/>
            <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>

.... I able to display listbox record but not toolkit records. Although I can see that for each Main record my object does have 3 or more records in Maintest.


Something doesn't add up...

ListBox.ItemsSource takes an IEnumerable of some kind - which means the property Main must be some kind of IEnumerable?

So, if what you're looking for is a Master-Detail kind of view - you need to change the XAML for the two controls like this - everything else should be fine:

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

This will make the DataGrid bind to the MainTest property of whatever obejct is selected in the ListBox.

Look to Bea Costa if you really need to get spiffy with Master-Detail scenarios.

Hope this helps!

0

精彩评论

暂无评论...
验证码 换一张
取 消