2015-01-26 2 views
-2

Я хочу связать текущую дату и время с текстовым полем, и я хочу обновить свойство source при изменении значения. Я используя структуру кода MVVM, и я хочу, чтобы эта задача выполнялась в .xaml-файлеСвязать текущую дату с TextBox и обновить исходное свойство при его обновлении (WPF)

+0

Можете встраивать некоторые детали? что вы подразумеваете под изменением ценности? – stsur

+0

В моем классе Entity у меня есть свойство, называемое SampleCurrentDate. Я привязал это свойство к TextBox в .xaml-файле. Когда я меняю дату в пользовательском интерфейсе, я также хочу изменить значение свойства SampleCurrentDate, – Hondaputha

ответ

0

Пользовательский пользовательский объект из WPF для достижения такой же цели.

public class YourClass : INotifyPropertyChanged 
{ 

    private string _mytime; 
    public string MyTime 
    { 
     get { return _mytime; } 
     set { _mytime= value; NotifyPropertyChanged("MyTime"); } 
    } 

    public event PropertyChangedEventHandler PropertyChanged; 
    private void NotifyPropertyChanged(String propertyName) 
    { 
     PropertyChangedEventHandler handler = PropertyChanged; 
     if (null != handler) 
     { 
      handler(this, new PropertyChangedEventArgs(propertyName)); 
     } 
    } 
} 

Теперь то, что вам нужно сделать, это приложить Mytime свойство в файле XAML и всякий раз, когда вы обновляете Mytime в своем классе файл ваш будет видеть обновленное значение на интерфейсе.

<TextBlock Text={Binding MyTime}/> 
+0

Спасибо Днянеш, я не понимаю вашего ответа. Вы можете быть более конкретным, пожалуйста. – Hondaputha

+0

Спасибо @Dnyanesh, но как установить текущую DateTime в .xaml-файле. – Hondaputha

0

Если у вас есть свойство Binding, добавить Mode=TwoWay обеспечить обновление от интерфейса к ViewModel включен.

Вам может понадобиться добавить Converter=... свойство с реализацией IValueConverter, который преобразует из DateTime в string и наоборот.

Если вы хотите, чтобы привязка обновлялась после каждого нажатия клавиши, а не только по потерянному фокусу, вы должны установить UpdateSourceTrigger -Продукт «Связывание».

+0

Спасибо, eFloh, я ссылаюсь на эту ссылку [link] (http://stackoverflow.com/questions/4383537/wpf-how-to-bind-current-date) и, как @BrokenGlass ответ, я создал UserControl.Resource как этот и мой TextBox, как это Моя проблема заключается в том, что у меня есть свойство SampleCurrentDate в моем классе Entity и как установить это свойство в textBox с чтобы повлиять на изменение, которое я делаю? – Hondaputha

+0

вы не можете привязать входное значение с одной стороны (StaticResource) и обновить другое (EntityClass). Вы должны установить DateTime.Now в свой Entity Class как значение по умолчанию (например, в ctor) и напрямую привязываться к этому свойству. – eFloh

Смежные вопросы