博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
潜移默化学会WPF--值转换器 - AYUI框架 - 博客园
阅读量:5036 次
发布时间:2019-06-12

本文共 4273 字,大约阅读时间需要 14 分钟。

原文:

1. binding 后面的stringFormat的写法----连接字符串

     <TextBlock Text="{Binding Path=Qty, StringFormat=Quantity: \{0\}}" />

 

2.

[ValueConversion(typeof(decimal), typeof(string))]    public class PriceConverter : IValueConverter    {        public object Convert(object value, Type targetType, object parameter, CultureInfo culture)        {            decimal price = (decimal)value;            return price.ToString("c", culture);        }        public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)        {            string price = value.ToString();                        decimal result;            if (Decimal.TryParse(price, System.Globalization.NumberStyles.Any, culture, out result))            {                return result;            }            return value;        }    }

用法  你懂的

 

 

3.条件式的值转换器

public class PriceToBackgroundConverter : IValueConverter    {        public decimal MinimumPriceToHighlight        {            get;            set;        }        public Brush HighlightBrush        {            get;            set;        }        public Brush DefaultBrush        {            get;            set;        }        public object Convert(object value, Type targetType, object parameter,          System.Globalization.CultureInfo culture)        {            decimal price = (decimal)value;            if (price >= MinimumPriceToHighlight)                return HighlightBrush;            else                return DefaultBrush;        }        public object ConvertBack(object value, Type targetType, object parameter,          System.Globalization.CultureInfo culture)        {            throw new NotSupportedException();        }    }

用法

先引入命名空间

然后在需要转换器的窗体中定义资源

用资源

 

例如 这是一个图片地址转成图片资源的一个转换器

public class ImagePathConverter : IValueConverter    {        private string imageDirectory = Directory.GetCurrentDirectory();        public string ImageDirectory        {            get { return imageDirectory; }            set { imageDirectory = value; }        }        public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            string imagePath = Path.Combine(ImageDirectory, (string)value);            return new BitmapImage(new Uri(imagePath));         }        public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            throw new NotSupportedException("The method or operation is not implemented.");        }    }

引入命名空间 ,定义资源

用资源

 

4. 多值转换器

public class ValueInStockConverter : IMultiValueConverter    {        public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)        {            // Return the total value of all the items in stock.            decimal unitCost = (decimal)values[0];            int unitsInStock = (int)values[1];            return unitCost * unitsInStock;        }        public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)        {            throw new NotSupportedException();        }    }

5.含参数的转换器,前台页面上的一个例子的写法

m

本例sys是先引入    命名空间的

xmlns:sys="clr-namespace:System;assembly=mscorlib"

 

6.其他stringFormat

 例如

  <TextBlock Text="{Binding Date,StringFormat={}{0:MM/dd/yyyy}}" />

  还有很多简单的 字母直接表示的

     <TextBlock Text="{Binding UnitCost,StringFormat=The Value is {0:C}." />   内置的转换货币的转换器  例如:还有 E,P,F?等

    还有1些时间的内置转换器,太多了,不想写了

   有 d,D,f,F,s,M,G

 

分类: ,
+加关注
1
0
上一篇:
下一篇:
posted on
2019-03-01 22:48 阅读(
...) 评论(
...)

转载于:https://www.cnblogs.com/lonelyxmas/p/10459231.html

你可能感兴趣的文章
Java SPI机制原理和使用场景
查看>>
web前端java script学习2017.7.18
查看>>
删除TXPlatform
查看>>
LaTex:图片排版
查看>>
并发访问超时的问题可能性(引用)
查看>>
中小团队基于Docker的Devops实践
查看>>
利用python打开摄像头并保存
查看>>
System函数的使用说明
查看>>
Selenium-测试对象操作之:获取浏览器滚动条滚动距离
查看>>
Linux下MySQL数据库安装与配置
查看>>
Extjs String转Json
查看>>
oracle入门(4)——少而常用的命令
查看>>
打印机设置(PrintDialog)、页面设置(PageSetupDialog) 及 RDLC报表如何选择指定打印机...
查看>>
Java 虚拟机部分面试题
查看>>
二叉树的遍历问题总结
查看>>
Spring之面向切面编程AOP
查看>>
MATLAB GUI程序设计中使文本框接收多行输入的方法
查看>>
全文检索-Elasticsearch (四) elasticsearch.net 客户端
查看>>
Oracle DBMS_SESSION
查看>>
sublime复制当前行到下一行
查看>>