Ho un progetto, in cui associo la proprietà IsChecked di una casella con un get/set nel codebehind. Tuttavia, quando l'applicazione si carica, non si aggiorna, per qualche motivo. Incuriosito, ho messo a nudo giù ai suoi principi fondamentali, in questo modo:WPF DataBinding non si aggiorna?
//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>
E, ecco, quando ho impostato a true, esso non ha aggiornato !
Chiunque può trovare una soluzione o spiegare perché?
Grazie, sarebbe apprezzato.
Leggi [materiale introduttivo ] (http://msdn.microsoft.com/en-us/library/ms752347.aspx). –
Non penso di meritare un downvote perché leggo un'altra fonte e non MSDN ... –
@ofstream Non ho fatto downvote, ma ho il sospetto che sia perché questa domanda non mostra alcuno sforzo di ricerca. Questo problema è estremamente semplice e chiunque lavori con il sistema di bind di WPF sa che è necessario implementare 'INotifyPropertyChanged' per far sì che le proprietà comunichino all'interfaccia utente di rivalutare l'associazione quando vengono cambiate. Praticamente ogni singolo tutorial WPF che introduce le associazioni copre questo concetto. – Rachel