Ich habe ein Projekt, wo ich die IsChecked-Eigenschaft eines Kontrollkästchens mit einem get/set im Codebehind binden. Wenn die Anwendung jedoch geladen wird, wird sie aus irgendeinem Grund nicht aktualisiert. Fasziniert ich es auf seine Grundlagen abgespeckte, wie folgt aus:WPF DataBinding wird nicht aktualisiert?
//using statements
namespace NS
{
/// <summary>
/// Interaction logic for MainWindow.xaml
/// </summary>
public partial class MainWindow : Window
{
private bool _test;
public bool Test
{
get { Console.WriteLine("Accessed!"); return _test; }
set { Console.WriteLine("Changed!"); _test = value; }
}
public MainWindow()
{
InitializeComponent();
Test = true;
}
}
}
XAML:
<Window x:Class="TheTestingProject_WPF_.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" DataContext="{Binding RelativeSource={RelativeSource Self}}">
<Grid>
<Viewbox>
<CheckBox IsChecked="{Binding Path=Test, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
</Viewbox>
</Grid>
Und, siehe da, wenn ich es auf true gesetzt, hat es nicht aktualisieren !
Jeder kann sich etwas einfallen lassen oder erklären warum?
Danke, es würde geschätzt werden.
Read [einführendes Material ] (http://msdn.microsoft.com/en-us/library/ms752347.aspx). –
Ich glaube nicht, dass ich einen Downvote verdiene, weil ich eine andere Quelle und nicht MSDN gelesen habe ... –
@ofstream Ich habe nicht downvote, aber ich vermute, es liegt daran, dass diese Frage keinen Forschungsaufwand zeigt. Dieses Problem ist extrem einfach und jeder, der mit dem Bindungssystem von WPF arbeitet, weiß, dass Sie 'INotifyPropertyChanged' implementieren müssen, damit Ihre Eigenschaften die Benutzeroberfläche benachrichtigen, um die Bindung neu zu bewerten, wenn sie geändert werden. So ziemlich jedes einzelne WPF-Tutorial, das Bindungen einführt, deckt dieses Konzept ab. – Rachel