Hierarchikus adatkötés beágyazott listanézetek WPF

szavazat
1

Van néhány adat, hogy van egy részlet asztalra. Azt akarjuk az adatokat be kell mutatni a ListView. Azt akarjuk, hogy a részletes adatok jelennek meg egy beágyazott ListView amikor kiválaszt egy elemet az eredeti listában. Nem úgy tűnik, hogy kitaláljuk, hogyan lehet a adatkötéseket működik.

Itt van, amit eddig, (a probléma a {Binding Path=FK_History_HistoryItems}):

<ListView Name=lstHistory ItemsSource={Binding Source={StaticResource History}} SelectionChanged=lstHistory_SelectionChanged>
    <ListView.View>
        <GridView>
            <GridViewColumn DisplayMemberBinding={Binding Path=Name} Header=Name Width=100 />
            <GridViewColumn DisplayMemberBinding={Binding Path=Description} Header=Description Width=150 />
            <GridViewColumn DisplayMemberBinding={Binding Path=Total, Converter={StaticResource moneyConvert}} Header=Total Width=100 />
            <GridViewColumn DisplayMemberBinding={Binding Converter={StaticResource categoryAggregate}} Header=Categories Width=100 />
        </GridView>
    </ListView.View>
    <ListView.Resources>
        <Style TargetType={x:Type ListViewItem}>
            <Setter Property=Template>
                <Setter.Value>
                    <ControlTemplate TargetType={x:Type ListViewItem}>
                        <Border>
                            <StackPanel>
                                <Border Name=presenter
                                        Background={TemplateBinding Background}
                                        BorderBrush={TemplateBinding BorderBrush}
                                        BorderThickness={TemplateBinding BorderThickness}
                                        Padding={TemplateBinding Padding}>
                                    <GridViewRowPresenter />
                                </Border>
                                <Border Name=details Visibility=Collapsed Margin=5
                                        BorderBrush=Black BorderThickness=2>
                                    <StackPanel Margin=5>
                                        <ListView ItemsSource={Binding Path=FK_History_HistoryItems}>
                                            <ListView.View>
                                                <GridView>
                                                    <GridViewColumn DisplayMemberBinding={Binding Path=Ammount} Header=Ammount Width=100 />
                                                    <GridViewColumn DisplayMemberBinding={Binding Path=Category} Header=Category Width=100 />
                                                </GridView>
                                            </ListView.View>
                                        </ListView>
                                    </StackPanel>
                                </Border>
                            </StackPanel>
                        </Border>
                        <ControlTemplate.Triggers>
                            <Trigger Property=IsSelected Value=True>
                                <Setter TargetName=details Property=Visibility Value=Visible />
                                <Setter TargetName=presenter Property=Background Value=Navy/>
                                <Setter TargetName=presenter Property=TextElement.Foreground Value=White />
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </ListView.Resources>
</ListView>
A kérdést 09/12/2008 19:03
a forrás felhasználó
Más nyelveken...                            


3 válasz

szavazat
1

Ha jól értem a kérdést helyesen van szüksége, hogy kötődnek a SelectedItem az eredeti lista:

<ListView ItemsSource="{Binding ElementName=lstHistory, Path=SelectedItem}">

Majd állítsa be a datatemplate / nézet, ha szükséges. Ha nem akarja használni elementName a kötési akkor is használhatja RelativeSource de én meg elementName könnyebb elolvasni és megérteni.

Válaszolt 09/12/2008 20:27
a forrás felhasználó

szavazat
0

Annak érdekében, hogy a trigger munka, Meg kell állítani a ControlTemplate TargetType:

<ControlTemplate TargetType="{x:Type ListViewItem}">

Anélkül, hogy a TargetType van megadva (például a választható típus), a XAML rendering zavarodott lesz ...

Válaszolt 07/10/2015 14:50
a forrás felhasználó

szavazat
0

Meg kell változtatni a problémát sort a következő:

<ListView ItemsSource="{Binding FK_History_HistoryItems}">

Az, hogy a változás, a kontroll szépen működik. Én már dolgozom valami hasonló, de hiába. Nagyon szeretem a munkát ezen.

Válaszolt 31/01/2009 00:33
a forrás felhasználó

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more