Hallo an alle!
ich habe ein Problem mit einem Binding. Hier mal der Beispielcode xaml des WPF Projektes:
<Window x:Class="test.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="370" Width="535">
<StackPanel>
<FlowDocumentPageViewer Height='100' >
<FlowDocument>
<Paragraph>
<Run>Intro Text</Run>
<Run x:Name='changeMeRun'>
Lorem Ipsum </Run>
</Paragraph>
</FlowDocument>
</FlowDocumentPageViewer>
<Button x:Name='ChangeTextButton'
Click='ChangeTextButton_Click'
Content='ChangeText' />
<TextBox Name="txb1" Background="Bisque" Text='{Binding ElementName=changeMeRun, Mode=OneWay,Path=Text}'/>
<StackPanel>
<TextBlock Width="248" Height="24" Text="Colors:"
TextWrapping="Wrap"/>
<ListBox x:Name="lbColor" Width="248" Height="56">
<ListBoxItem Content="Blue"/>
<ListBoxItem Content="Green"/>
<ListBoxItem Content="Yellow"/>
<ListBoxItem Content="Red"/>
<ListBoxItem Content="Purple"/>
<ListBoxItem Content="Orange"/>
</ListBox>
<TextBlock Width="248" Height="24" Text="You selected color:" />
<TextBlock Width="248" Height="24"
Text="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=OneWay}"
Background="{Binding ElementName=lbColor, Path=SelectedItem.Content, Mode=OneWay}">
</TextBlock>
</StackPanel>
</StackPanel>
</Window>
und die codebehind:
private void ChangeTextButton_Click(object sender, RoutedEventArgs e)
{
changeMeRun.Text = DateTime.Now.ToLongTimeString();
}
wenn ich den button ChangeTextButton clicke ändert sich der Text von changeMeRun nur der text vom Binding also von txb1 wird nicht mitgeändert.
Wenn ich nun das selbe bindingprinzip auf eine listbox lbColor und einen TextBlock lege funktioniert es sehr gut. Immer wenn ich die Listbox neu wähle wird der text geändert.
kann mir wer sagen wo mein Fehler ist!
Gruß Mike
zero_x | <span style="font-size: 10;">my</span><span style="font-size: 10;">CSharp</span><span style="font-size: 10;">.de</span> - gemeinsam mehr erreichen
Für längere Zeit inaktiv.
hallo Danke für die Antwort,
das hatte ich aber schon:
<TextBox Name="txb1" Background="Bisque" Text='{Binding ElementName=changeMeRun, Mode=OneWay,Path=Text, UpdateSourceTrigger=PropertyChanged}'/>
funktioniert aber nicht. Da muss noch ein anderer Denkfehler sein?
Gruss Mike
Hallo mikefried,
hab deinen Code probiert.
Wenn ich auf den Button klicke steht oben "Intro Text + Zeit" und unter dem Button nur die Zeit. So sollte es ja sein. Bei jedem Klick wird oben und unten die Zeit aktualisiert. Bist du dir sicher dass dir die XAML kompiliert? Ich hatte nämlich auch mal das Problem dass mir die Änderungen in der XAML nicht kompiliert werden
Gruß
Michael
das verstehe ich nicht bei mir geht es nicht und die xaml wird kompiliert. wenn ich zum beispiel den Text von Lorem Ipsum auf Lorem IpsumXXXX ändere wird diese änderung übernommen.
Mensch wo liegt den nun mein Fehler?
also wenn ich den code in ein neues Projekt kopiere geht es auch wieder nicht!