Я достаточно опытный программист, но новичок в WPF.Я связал текстовый блок в форме со свойством объекта, но он не обновляет форму, как я ожидал, когда я установил свойство.Привязка, кажется, выполнена правильно - если я устраняю неполадки с кнопкой, которая обновляет свойство, форма изменяется, но когда я первоначально устанавливаю свойство в конструкторе формы, анализируя локальный файл XML, он не обновляется.
Я использую 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();
}