我已将TextBox的Text属性绑定到基础对象的属性,它似乎工作得很好。不幸的是,当我以编程方式更改属性的值时,它似乎不会在GUI上更新。
这是属性:
public string SealedDate
{
get
{
string result = string.Empty;
if (_DACase.SealedDate != DateTime.MinValue)
{
result = Formatting.FormatDate(_DACase.SealedDate);
}
return result;
}
set
{
DateTime theDate = DateTime.MinValue;
if (DateTime.TryParse(value, out theDate)
&& _DACase.SealedDate != theDate)
{
_DACase.SealedDate = theDate;
base.OnChanged(); //fires event so I know the value of the object has changed
}
}
}
当设置另一个属性时,该属性的值被设置:
public bool IsSealed
{
get
{
return _DACase.SealedId > 0
|| _DACase.SealedDate != DateTime.MinValue;
}
set
{
if (value != (_DACase.SealedId > 0 || _DACase.SealedDate != DateTime.MinValue))
{
if (value)
{
this.SealedId = Authentication.CurrentUser.Id;
this.SealedDate = Formatting.FormatDate(DateTime.Now);
}
else
{
this.SealedId = 0;
this.SealedDate = DateTime.MinValue.ToString();
}
base.OnChanged();
}
}
}
TextBox的XAML在我认为应该更新时没有更新:
<TextBox Name="txtSealedDate" Text="{Binding SealedDate}" Grid.Column="5" Grid.Row="3" IsReadOnly="True" />
答案 0 :(得分:1)
Vlad的解决方案(在评论中)是正确的。