WPF 数据绑定(bind)和格式化

标签 wpf data-binding mvvm

我的 ViewModel 中有一个名为 IsConnected 的 bool 属性,我想将它绑定(bind)到我的 MainWindow 中的 TextBlock。而不是让文本 block 读取 truefalse 我需要它说 ConnectedDisconnected 。请原谅我,因为我是 WPF 的新手。如果有人能给我一个先机,我可以从那里开始,但我不确定如何弄清楚我需要什么。

最佳答案

最简单的方法可能是创建一个自定义转换器,将您的 bool 值转换为字符串。在任何地方搜索 IValueConverter 和/或 WPF。

public class BoolToConnectedConverter : IValueConverter
{
    #region IValueConverter Members

    public object Convert(object value, Type targetType, object parameter,
        System.Globalization.CultureInfo culture)
    {
       if((bool)value)
             return "Connected";
       else
             return "Disconnected";
    }

    public object ConvertBack(object value, Type targetType, object parameter,
        System.Globalization.CultureInfo culture)
    {
        throw new NotSupportedException();
    }

    #endregion
}

添加xmlns:

xmlns:converter="clr-namespace:MyProjectNameSpace"

将资源添加到 XAML(更改为所需的任何元素)

<Window.Resources>
  <converter:BoolToConnectedConverter x:Key="connectedConverter" />
</Window.Resources>

在 XAML 中:

<TextBlock Text={Binding IsConnected, Converter={StaticResource connectedConverter}" />

关于WPF 数据绑定(bind)和格式化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4220210/

相关文章:

c# - 指定 Xaml 中开始和结束标记之间的属性

c# - 更新 DataGridCell 的绑定(bind)值时创建动画

c# - 如何拆分 ViewModel

javascript - 哪个 Javascript 库鼓励漂亮的 UI 模式并且适合 Silverlight/WPF 开发人员?

wpf - MahApps 进度指示器未延伸至内容

c# - Wpf 置于最前面

WPF 绑定(bind) Width 到 Parent.Width*0.3

c# - DataBinding DataGridView 到 EF.DbSet,如何将新的 DataGridView 行发送到 DbSet?

c# - 在 WPF 中使用字典进行双向数据绑定(bind)

c# - MVVM 和 View/ViewModel 层次结构