Benutzer mit den meisten Antworten
Details meiner Daten aus einer ListBox in einem PopUp anzeigen?

Frage
-
Hi,
ich würd gern folgendes machen:
ich habe eine listbox in der die titel meiner daten anzezeigt werden. nun klicke ich auf einen dieser titel, ein popup geht auf und dort stehen dann alle weiteren infos zu diesem titel. ich habe ein childWindow fürs popup benutzt, bloß meine daten werden nicht angezeigt...kann mir jemand nen rat geben? hier mein code:
mainPage.xaml.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightApplication4 { public partial class MainPage : UserControl { public MainPage() { // Für das Initialisieren der Variablen erforderlich InitializeComponent(); } private void listBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { // TODO: Ereignishandlerimplementierung hier einfügen. DetailWindow popup = new DetailWindow(); popup.Show(); } } }
mainpage.xaml:
<UserControl xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:local="clr-namespace:SilverlightApplication4" xmlns:d="http://schemas.microsoft.com/expression/blend/2008" xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" mc:Ignorable="d" x:Class="SilverlightApplication4.MainPage" Width="640" Height="480"> <UserControl.Resources> <DataTemplate x:Key="ListItemTemplate"> <StackPanel> <TextBlock Text="{Binding Title}"/> </StackPanel> </DataTemplate> <DataTemplate x:Key="ListItemTemplate1"> <StackPanel> <TextBlock Text="{Binding Title}"/> </StackPanel> </DataTemplate> <DataTemplate x:Key="ListItemTemplate2"> <StackPanel> <TextBlock Text="{Binding Title}"/> </StackPanel> </DataTemplate> <DataTemplate x:Key="DataTemplate1"> <Grid> <TextBlock TextWrapping="Wrap" Text="{Binding Title}" d:LayoutOverrides="Width, Height"/> </Grid> </DataTemplate> <DataTemplate x:Key="ListItemTemplate3"> <StackPanel> <TextBlock Text="{Binding Title}"/> </StackPanel> </DataTemplate> </UserControl.Resources> <Grid Background="#FF5C7590" ShowGridLines="false" DataContext="{Binding Source={StaticResource Dokumente_SampleSampleDataSource}}"> <Grid.RowDefinitions> <RowDefinition Height="40" /> <RowDefinition Height="*" /> </Grid.RowDefinitions> <ListBox x:Name="listBox" Grid.Row="1" ItemsSource="{Binding ListItemCollection}" Margin="5" SelectionChanged="listBox_SelectionChanged"> <ListBox.ItemTemplate> <DataTemplate> <StackPanel Orientation="Horizontal"> <StackPanel Style="{StaticResource Panel}"> <TextBlock Text="ID" Style="{StaticResource SubBlock}" /> <TextBlock Cursor="Hand" Text="{Binding ID}" Style="{StaticResource IDBlock}" /> </StackPanel> <TextBlock Cursor="Hand" Text="{Binding Title}" Style="{StaticResource TitleBlock}"/> </StackPanel> </DataTemplate> </ListBox.ItemTemplate> </ListBox> </Grid> </UserControl>
detailWindow.xaml.cs:
using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Windows; using System.Windows.Controls; using System.Windows.Documents; using System.Windows.Input; using System.Windows.Media; using System.Windows.Media.Animation; using System.Windows.Shapes; namespace SilverlightApplication4 { public partial class DetailWindow : ChildWindow { public DetailWindow() { InitializeComponent(); } private void OKButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = true; } private void CancelButton_Click(object sender, RoutedEventArgs e) { this.DialogResult = false; } } }
detailWindow.xaml:
<sdk:ChildWindow xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:sdk="http://schemas.microsoft.com/winfx/2006/xaml/presentation/sdk" x:Class="SilverlightApplication4.DetailWindow" xmlns:navigation="clr-namespace:System.Windows.Controls;assembly=System.Windows.Controls.Navigation" Title="DetailWindow" Width="400" Height="300"> <Grid x:Name="LayoutRoot"> <Grid.ColumnDefinitions> <ColumnDefinition /> <ColumnDefinition /> </Grid.ColumnDefinitions> <Grid.RowDefinitions> <RowDefinition Height="Auto" /> <RowDefinition Height="Auto" /> <RowDefinition Height="*" /> <RowDefinition Height="Auto" /> </Grid.RowDefinitions> <TextBlock Text="{Binding Title}" FontSize="20" Foreground="#000" FontWeight="Bold" Grid.Column="1" /> <HyperlinkButton Content="{Binding FileRef}" TargetName="_new" NavigateUri="{Binding FileRef}" FontSize="12" Margin="0,0,0,5" Grid.Column="1" IsTabStop="False"/> <TextBlock Text="{Binding Betreuer}" FontSize="12" Margin="0,0,0,5" Grid.Column="1" /> <Button x:Name="OKButton" Content="OK" Click="OKButton_Click" Width="75" Height="23" Margin="0,0,79,0" HorizontalAlignment="Right" Grid.Row="1" /> <Button x:Name="CancelButton" Content="Cancel" Click="CancelButton_Click" Width="75" Height="23" HorizontalAlignment="Right" Grid.Row="1" /> </Grid> </sdk:ChildWindow>
Mittwoch, 8. Dezember 2010 21:49
Antworten
-
Ok, da ich im Moment kein Beispiel dafür habe um es zu testen, versuch mal den DataContext des Popup auf das SelectedItem des ListBox zu setzen und nimm im Binding des ChildWindows das "SelectedItem." wieder raus.
- Als Antwort markiert M4nTis Freitag, 10. Dezember 2010 13:45
Donnerstag, 9. Dezember 2010 14:10Beantworter
Alle Antworten
-
Hi,
ich habe es wie folgt versucht:
private void listBox_SelectionChanged(object sender, System.Windows.Controls.SelectionChangedEventArgs e) { // TODO: Ereignishandlerimplementierung hier einfügen. popup.DataContext = listBox.DataContext; popup.Show(); }
allerdings funktionierts so nicht! könntest du mir noch etwas genauer sagen, wie ich den DataContext übergeben kann?
Thx,
Flo
Donnerstag, 9. Dezember 2010 12:07 -
Ok, da ich im Moment kein Beispiel dafür habe um es zu testen, versuch mal den DataContext des Popup auf das SelectedItem des ListBox zu setzen und nimm im Binding des ChildWindows das "SelectedItem." wieder raus.
- Als Antwort markiert M4nTis Freitag, 10. Dezember 2010 13:45
Donnerstag, 9. Dezember 2010 14:10Beantworter