c# - 如何为 WPF 中的字段制作自定义转换器?

标签 c# wpf xaml mvvm

我有一个标签和一个文本字段,它将显示两个不同的值。

if(a != null && b == null) {
   return "a"; 
}
else if(a == null && b != null) {
   return "b"; 
}

逻辑很简单,但是如何在 xaml 和 mvvm-pattern 中适应呢?我有一个 View 模型和一个 View (xaml-ui)。代码应该适本地放在 View 模型中。

最佳答案

你的意思是说....你想显示一个 对于第一个条件和 b 第二个条件??

如果那是真的……

然后 ..

在 ViewModel 中使用属性更改通知创建属性

ViewModel 中的代码

public void ValidationFunction
{
    if(a != null && b == null) 
    {
          TextToDisplay ="a";
    }
    else if(a == null && b != null) 
    {
          TextToDisplay ="b";
    }
    else
    {
          TextToDisplay= string.Empty;
    } 
}

XAML 中的绑定(bind)
<TextBlock Text={Binding Path=TextToDisplay}/> 

不要忘记在属性的 Setter 中实现 INotifyPropertyChanged。

需要时调用验证函数。

关于c# - 如何为 WPF 中的字段制作自定义转换器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10136763/

相关文章:

c# OrderBy 字符串层次结构 xx.xx.xx

c# - 在 C#/WPF 中获取 PathGeometry(线)的长度

WPF 文本框和滚动行为

c# - 如何在 Avalonia 中绑定(bind)颜色

c# - 使用相同形式的 .net 身份注册多个用户

c# - 使用 FileSystemWatcher 监视文件系统

c# - C# 中的命名空间前缀

wpf - 在 VS 2010 中禁用 WPF 设计器?

c# - 在没有 WebBrowser 的情况下显示混合的 HTML 内容? (ScrollViewer 的问题)

c# - View 中的 WPF ReactiveUI 绑定(bind)