在我的 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的新手,任何帮助将不胜感激。
如果只需要显示字符串,则可以将文本框设置为只读和单向绑定。然后,从 Guid 的 set 访问器引发依赖字符串属性的更改。
在视图中:
<Grid>
<TextBox IsReadOnly="True" Text="{Binding GuidStr, Mode=OneWay,
在视图中模型:
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", ""); }
}