在我的WPF XAML中,我有一个文本框,它绑定到viewModel中的GUID属性,在应用程序加载时我想将此文本框显示为空而不是00000000-0000-0000-0000-000000000000
以下是我的XMAL和VM代码,
<TextBox Text="{Binding DocId, UpdateSourceTrigger=PropertyChanged, ValidatesOnDataErrors=True, ValidatesOnExceptions=True ,
TargetNullValue= '', NotifyOnValidationError=True}"></TextBox>
private Guid _docId;
public Guid DocId
{
get { return _docId; }
set
{
_docId = value;
OnPropertyChanged("DocId");
}
}
我尝试设置TargetNullValue= ' '
但它无效,在应用程序加载时,UI中的文本框值显示为00000000-0000-0000-0000-000000000000
。我也尝试设置FallbackValue = ''
,但结果仍然相同。有什么建议吗?我是WPF的新手,我们将不胜感激。
答案 0 :(得分:1)
如果只需要显示字符串,可以使TextBox只读和单向绑定。然后从Guid的set访问器中引发依赖字符串属性的更改。
在视图中:
<Grid>
<TextBox IsReadOnly="True" Text="{Binding GuidStr, Mode=OneWay,
在ViewModel中:
private Guid _docId;
public Guid DocId
{
get { return _docId; }
set
{
_docId = value;
OnPropertyChanged("DocId");
OnPropertyChanged("GuidStr");
}
}
public string GuidStr
{
get { return _docId.ToString().Replace("00000000-0000-0000-0000-000000000000", ""); }
}