Я достаточно опытный программист, но новичок в WPF. Я привязал текстовый блок к форме к свойству объекта, но он не обновляет форму, как я ожидал бы, когда я установил свойство. Связывание, как представляется, выполняется правильно - если я устраняю проблему с помощью кнопки, которая обновляет свойство, изменение формы, но когда я изначально устанавливаю свойство в конструкторе формы, анализируя локальный файл XML, он не обновляется.C# WPF Binding Behavior
Я использую C# и VS2010. Мог бы кто-нибудь направить меня на несколько шагов или передать меня в книгу или инструмент для кодирования, который заставит меня справиться с этим горбом. Кроме того, обратите внимание, что я решил структурировать вещи путем имитации парадигмы, используемой в «Как сделать: Построение моего первого приложения WPF» на windowsclient.net. Если вы думаете, что я ошибаюсь, я бы по достоинству оценил указатель на лучший учебник.
Форма XAML:
<Window ...
xmlns:vm="clr-namespace:MyProjectWPF.ViewModels">
<Grid>
<Grid.DataContext>
<vm:MyConfigurationViewModel />
</Grid.DataContext>
<TextBlock Name="textBlock4" Text="{Binding Path=Database}" />
</Grid>
MyConfigurationViewModel определение класса:
class MyConfigurationViewModel : INotifyPropertyChanged
{
private string _Database;
public string Database
{
get { return _Database; }
set { _Database = value; OnPropertyChanged("Database"); }
}
public void LoadConfiguration()
{
XmlDocument myConfiguration = new XmlDocument();
myConfiguration.Load("myfile.xml");
XmlNode root = myConfiguration.DocumentElement;
Database = root["Database"].InnerText;
}
public event PropertyChangedEventHandler PropertyChanged;
private void OnPropertyChanged(string Property)
{
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs(Property));
}
И отделенного кода моя форма XAML:
public partial class MyForm : Window
{
private ViewModels.myConfigurationViewModel mcvm
= new ViewModels.myConfigurationViewModel();
public MyForm()
{
mcvm.LoadConfiguration();
}
Спасибо. Исправление кода отлично работало, и объяснение в верхней части было тем, что мне нужно было понять, почему изменения не пробивались в мою форму. – LikeMaBell