有关的:将3个文本框绑定在一起;相同的日期时间不同的格式 https://stackoverflow.com/questions/35581427/binding-3-textboxes-together-same-datetime-different-format
我有三个textboxes
,所有内容都应该以相同的日期绑定在一起。其中两个具有正常的字符串格式。第三个有特定的格式yyyy,jjj/HHmmss
。我不知道如何绑定这个textbox
到我拥有的自定义格式,并且如果我更改其中的任何日期值,则其他textboxes
将更新,反之亦然。
private DateTime _dateInViewModel;
public DateTime DateInViewModel
{
get { return _dateInViewModel; }
set
{
_dateInViewModel = value;
NotifyPropertyChanged("DateInViewModel");
}
}
<TextBox Name="SDate1" Text="{Binding DateInViewModel, StringFormat='MM/dd/yyyy'}" />
<TextBox Name="SDate2" Text="{Binding DateInViewModel}" />
<TextBox Name="STime1" Text="{Binding DateInViewModel, StringFormat='hh:mm:ss'}" />
自定义格式可以如下所示:
format = String.Format("{0},{1}/{2}",
DateInViewModel.Year,
DateInViewModel.DayOfYear.ToString("d3"),
DateInViewModel.ToString("HHmmss"));
目前,仅SDate1
and STime1
正确地相互绑定并在对方更改时进行更新。
我做了一个转换器。它正确更新SDate2
when SDate1
and STime1
已更改,但编辑时不起作用SDate2
更新其他人。
public class DateTimeConverter : IValueConverter
{
#region IValueConverter Members
public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
if (value != null)
{
DateTime test = (DateTime)value;
string date = String.Format("{0},{1}/{2}",
test.Year,
test.DayOfYear.ToString("d3"),
test.ToString("HHmmss"));
return (date);
}
return string.Empty;
}
public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
#endregion
}