Nabend,
Habe gerade ein Problem mit einer klassischen Detail-View Ansicht im Entity Framework und WPF ich habe mir das Tutorial von ErfinderdesRades angesehen: die vier Views (in Wpf) aber irgendwie funktioniert bei mir zwar das Tutorial aber die DBSets zicken rum
zum Probieren habe ich mir eine einfache Form geholt Links mit einer Listview und rechts einem Border mit nur einem Textfeld zum testen.
Hier das XAML:
hier der Code behind:
Habe jetzt folgendes Problem die Elemente werden in der Listview angezeigt klicke ich auf ein Element ändert sich nichts.
Ändere ich "test_border.DataContext = _folders" dann wird er mit einen Fehler auf:
Ich vermute das der Border einfach keine Info über die Klickänderung im Listview bekommt binde ich das Element an die .selecteditem Property der Listview klappt es....
Kann mir hier jemand helfen?
Danke!
Habe gerade ein Problem mit einer klassischen Detail-View Ansicht im Entity Framework und WPF ich habe mir das Tutorial von ErfinderdesRades angesehen: die vier Views (in Wpf) aber irgendwie funktioniert bei mir zwar das Tutorial aber die DBSets zicken rum
zum Probieren habe ich mir eine einfache Form geholt Links mit einer Listview und rechts einem Border mit nur einem Textfeld zum testen.
Hier das XAML:
XML-Quellcode
- <Window x:Class="dia_test"
- xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
- xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
- xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
- xmlns:local="clr-namespace:HHHB"
- mc:Ignorable="d"
- Title="dia_test" Height="300" Width="300" d:DataContext="{d:DesignInstance {x:Type local:folder_v01}}">
- <Grid>
- <Grid.RowDefinitions>
- <RowDefinition Height="39*"/>
- <RowDefinition Height="230*"/>
- </Grid.RowDefinitions>
- <Grid.ColumnDefinitions>
- <ColumnDefinition/>
- <ColumnDefinition/>
- </Grid.ColumnDefinitions>
- <ListBox x:Name="listBox" Grid.Column="0" Grid.RowSpan="2">
- <ListBox.ItemTemplate>
- <DataTemplate>
- <WrapPanel>
- <TextBlock Text="{Binding bezeichnung}"/>
- </WrapPanel>
- </DataTemplate>
- </ListBox.ItemTemplate>
- </ListBox>
- <Border x:Name="test_border" DataContext="{Binding _folders}" BorderBrush="Black" BorderThickness="1" Grid.Column="1" HorizontalAlignment="Left" Height="100" Margin="36,25.898,0,0" VerticalAlignment="Top" Width="100" Grid.Row="1">
- <TextBox x:Name="textBox" TextWrapping="Wrap" Text="{Binding bezeichnung}"/>
- </Border>
- </Grid>
- </Window>
hier der Code behind:
VB.NET-Quellcode
- Imports System.Data.Entity
- Public Class dia_test
- Dim db As New template_dbEntities
- Public _folders As DbSet(Of folder_v01) = db.folder_v01
- Public Sub New()
- ' This call is required by the designer.
- InitializeComponent()
- ' Add any initialization after the InitializeComponent() call.
- _folders.Load
- Me.DataContext = _folders
- listBox.ItemsSource = _folders.ToList
- listBox.IsSynchronizedWithCurrentItem = True
- test_border.DataContext = _folders.ToList
- End Sub
- End Class
Habe jetzt folgendes Problem die Elemente werden in der Listview angezeigt klicke ich auf ein Element ändert sich nichts.
Ändere ich "test_border.DataContext = _folders" dann wird er mit einen Fehler auf:
Data binding directly to a store query (DbSet, DbQuery, DbSqlQuery, DbRawSqlQuery) is not supported.
Ich vermute das der Border einfach keine Info über die Klickänderung im Listview bekommt binde ich das Element an die .selecteditem Property der Listview klappt es....
Kann mir hier jemand helfen?
Danke!
mfG.
Stephan
Stephan