У меня есть проект, в котором я привязываю свойство IsChecked checkbox с помощью get/set в коде. Однако, когда приложение загружается, по какой-то причине оно не обновляется. Заинтригованный, я раздел ее до ее основ, например:WPF DataBinding не обновляется?
//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>
И, вот, и вот, когда я установил его так, он не обновлялся !
Любой может придумать исправление или объяснить, почему?
Спасибо, было бы полезно.
читать [вводный материал ] (http://msdn.microsoft.com/en-us/library/ms752347.aspx). –
Я не думаю, что заслуживаю нисходящего звена, потому что я читал еще один источник, а не MSDN ... –
@ofstream Я не спускал вниз, но я подозреваю, что это потому, что этот вопрос не показывает никаких исследований. Эта проблема чрезвычайно проста, и любой, кто работает с системой привязки WPF, знает, что вам нужно реализовать 'INotifyPropertyChanged', чтобы ваши свойства уведомляли пользовательский интерфейс, чтобы переоценить привязку при их изменении. Практически каждый учебник WPF, в котором представлены привязки, охватывает эту концепцию. – Rachel