Convert和RelativeSource
自定义Converter
后台Converter类实现接口IValueConverter
方法Convert是值->UI
方法ConvertBack是UI->值
初始化走Convert
public class ColorConvert : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
//value为当前的对象
var item = value as ListViewItem;
var view = ItemsControl.ItemsControlFromItemContainer(item);
var index = view.ItemContainerGenerator.IndexFromContainer(item);
var data = view.Items[index] as Student;
if (data.Age == 22)
return Brushes.Red;
if (data.Age % 2 == 0)
return Brushes.Pink;
else
return Brushes.DeepSkyBlue;
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
return null;
}
}
前端
前端引用命名空间,实例化静态资源
<converts:ColorConvert x:Key="MyConvert"></converts:ColorConvert>
将MyConvert绑定给Style
<Style x:Key="Item" TargetType="ListViewItem">
<!--表明将自身的背景颜色修改-->
<Setter Property="Background">
<Setter.Value>
<!--RelativeSource="{RelativeSource Self}"的Self不能用控件名称代替-->
<Binding RelativeSource="{RelativeSource Self}" Converter="{StaticResource MyConvert}"></Binding>
</Setter.Value>
</Setter>
</Style>
使用Style
<!--使用ItemContainerStyle将Style赋给ListView-->
<ListView ItemsSource="{Binding }" ItemContainerStyle="{StaticResource Item}">
<ListView.View>
<GridView>
<GridView.Columns>
<GridViewColumn Header="姓名" DisplayMemberBinding="{Binding Name}"></GridViewColumn>
<GridViewColumn Header="年龄" DisplayMemberBinding="{Binding Age}"></GridViewColumn>
</GridView.Columns>
</GridView>
</ListView.View>
</ListView>
示例代码
https://github.com/zLulus/NotePractice/tree/dev3/WPF/WpfDemo/Converts
Convert和RelativeSource的更多相关文章
- WPF学习目录
基本概念 数据源Source-目标Target WPF生命周期 App.xaml 依赖属性 WPF路由 线程操纵UI问题 利用属性中设置.查看DataContext/Command等 分析布局 写数据 ...
- [WPF系列-高级TemplateBinding vs RelativeSource TemplatedParent]
What is the difference between these 2 bindings: <ControlTemplate TargetType="{x:Type Button ...
- 重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数据转换
[源码下载] 重新想象 Windows 8 Store Apps (52) - 绑定: 与 Element Model Indexer Style RelativeSource 绑定, 以及绑定中的数 ...
- Convert BSpline Curve to Arc Spline in OpenCASCADE
Convert BSpline Curve to Arc Spline in OpenCASCADE eryar@163.com Abstract. The paper based on OpenCA ...
- Convert.ToInt32()、int.Parse()和(int)三者的区别
Convert.ToInt32将object类类型转换成int类型,如Convert.ToInt32(session["shuzi"]); (int)适合简单数据类型之间的转换: ...
- Leetcode: Convert sorted list to binary search tree (No. 109)
Sept. 22, 2015 学一道算法题, 经常回顾一下. 第二次重温, 决定增加一些图片, 帮助自己记忆. 在网上找他人的资料, 不如自己动手. 把从底向上树的算法搞通俗一些. 先做一个例子: 9 ...
- [LeetCode] Convert a Number to Hexadecimal 数字转为十六进制
Given an integer, write an algorithm to convert it to hexadecimal. For negative integer, two’s compl ...
- [LeetCode] Convert Sorted List to Binary Search Tree 将有序链表转为二叉搜索树
Given a singly linked list where elements are sorted in ascending order, convert it to a height bala ...
- [LeetCode] Convert Sorted Array to Binary Search Tree 将有序数组转为二叉搜索树
Given an array where elements are sorted in ascending order, convert it to a height balanced BST. 这道 ...
随机推荐
- pytharm运行django项目
pytharm运行django项目 安装Django 下载Django包,解压缩. CMD 进入解压路径下. 执行: python setup.py install 增加环境变量: C:\Pytho ...
- JS表格分页组件:fupage的设计思路和具体用法(未来考虑开源,争取在2015年)
一.背景 之前在秒针工作的时候,某js高级工程师写了很多自己的组件,其中一套是分页组件,叫做st-grid.不过在我看来,bug太多,我经常给他反馈bug,我也不清楚为啥别人没有发现. ...
- 如何将服务器传来的字符串转成HTML显示在前端页面
从后台返回的字符串是一段HTML源代码,如果不做处理,直接插入前端页面中 ,会显示为字符: 现需求为:将后台返回的字符串str以HTML显示在div中: <div id='container'& ...
- 深度学习框架 —— tflearn 的学习
1. tflearn.data_utils from tflearn.data_utils import to_categorical one_hot 编码: 第一个参数为属性列,第二个参数接受类别个 ...
- sitecore-CMS
安装sitecore数据库和客户端到本机 (提前先装好数据库和IIS) 安装教程下载:http://download.csdn.net/detail/qq1162195421/6436799 安装 ...
- TensorFlow 实战(四)—— tensor 的认识
tensorflow,即是 tensor flows,在 computation graph 中 flows(流动)的不是别人,正是 tensor: 1. tensor 基本属性 tensor 的名字 ...
- 【87.65%】【codeforces 731A】Night at the Museum
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- 【27.48%】【codeforces 699D】 Fix a Tree
time limit per test2 seconds memory limit per test256 megabytes inputstandard input outputstandard o ...
- 【BZOJ 2534】Uva10829L-gap字符串
[链接]h在这里写链接 [题意] 让你找出uvu形式的字符串个数. v非空且长度为L,且u也非空 [题解] 之前做过一道相同的题. 枚举u的长度. 然后从u,2 ...
- js限制文本框input只能输入数字
JS判断只能是数字和小数点. ,文本框只能输入数字代码(小数点也不能输入) 复制代码 代码示例:<input onkeyup="this.value=this.value.replac ...