[WPF] Mode=OneWay funzt nicht ?!
-
Heiho
hier mal eine beispielapp
<Grid> <ListView Margin="0,0,0,30.009" Name="_list" ItemsSource="{Binding}" IsSynchronizedWithCurrentItem="True" GridViewColumnHeader.Click="_Header_Click" SelectionMode="Single"> <ListView.View> <GridView> <GridView.Columns> <GridViewColumn Width="120" Header="Vorname" x:Name="VornameWidth" DisplayMemberBinding="{Binding FirstName}"/> <GridViewColumn Width="120" Header="Nachname" x:Name="NachnameWidth" DisplayMemberBinding="{Binding LastName}"/> <GridViewColumn Width="120" Header="Geburtstag" x:Name="BirthDayWidth" DisplayMemberBinding="{Binding BirthDay}"/> </GridView.Columns> </GridView> </ListView.View> </ListView> <WrapPanel Height="26" Name="wrapPanel1" VerticalAlignment="Bottom"> <TextBox Height="23" Name="_firstName" MinWidth="120" Width="{Binding ElementName=VornameWidth, Path=Width}" DataContext="{Binding Path=SelectedItem, ElementName=_list}" Text="{Binding Path=FirstName}" /> <TextBox Height="23" Name="_lastName" MinWidth="120" Width="{Binding ElementName=NachnameWidth, Path=Width}" DataContext="{Binding Path=SelectedItem, ElementName=_list}" Text="{Binding Path=LastName}" /> <TextBox Height="23" Name="_birthDay" MinWidth="120" Width="{Binding ElementName=BirthDayWidth, Path=Width}" DataContext="{Binding Path=SelectedItem, ElementName=_list}" Text="{Binding Path=BirthDay}" /> <Button Height="21" Name="Add" Width="39" Click="Add_Click" Content="Add"/> <Button Height="21" Name="Change" Width="39" Click="Change_Click" Content="Change"/> </WrapPanel> </Grid>
durch
DataContext="{Binding Path=SelectedItem, ElementName=_list}" Text="{Binding Path=FirstName}"
in den textboxen werden diese immer mit dem selektierten item abgeglichen, und sobald man in der textbox etwas editiert wird es in der liste uebernommen
nur
ich brauch das eher oneway - also das es zwar das selektierte anzeigt, aber sich nicht so aendern laesst sofern man nicht explizit auf change klickt
ich hab dafuer soetwas gemacht
Text="{Binding Path=BirthDay, Mode=OneWay}"
nur, nun werden die editboxen nicht mit dem selektierten item abgeglichen ?!
geht es hier ueberhaupt mit dem OneWay - oder muss ich das selektierte item per code an die textboxen zuweisen ?
-
Schau mal hier:
http://www.mycsharp.de/wbb2/thread.php?threadid=57391Du überschreibst den durch das Binding gelieferten Wert mit einem lokalen Wert (den du eingibst in die TextBox), damit wird das Binding entfernt.
-
hmm
muss das da erstmal verstehen
ist es dann nicht einfacher das fuellen der textboxen durch den code zu realisieren
also beim click auf ein item die textboxen fuellen - komplett ohne binding ?!