在应用程序加载时,在绑定到 GUID 属性的文本框中显示空值



在我的 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", ""); }
}

最新更新