问题说明:

当用到dictionary<key,value>来储存数据的时候,有时候需要在界面上绑定一个key来显示value,这时候有两种思路:

一种是写一个自定义的扩展类,类似Binding,这里取名为“MyBinding”,在binding类内部实现key的绑定。

另一种更简洁,更通用的方法是用索引实现绑定。属性能够绑定到界面,同样的索引也能绑定到界面。

实现代码如下:

1.自定义MarkupExtension,

using System;
using System.Windows.Data;
using System.Windows.Markup; namespace 索引绑定
{
public class MyBinding : MarkupExtension
{
public int key { get; set; } public override object ProvideValue(IServiceProvider serviceProvider)
{
var b = new Binding("Value");
b.Source = ViewModelNomal.Instance.li[key];
return b.ProvideValue(serviceProvider);
}
}
}

  2.索引绑定

    public class ModelUseIndexer : INotifyPropertyChanged
{
private readonly Dictionary<int, int> _localDictionary = new Dictionary<int, int> (); [IndexerName("Item")]
public int this[int index]
{
get
{
int result;
_localDictionary.TryGetValue(index, out result);
return result;
}
set
{
if (_localDictionary.ContainsKey(index))
_localDictionary[index] = value;
else
_localDictionary.Add(index, value);
if (PropertyChanged != null)
PropertyChanged(this, new PropertyChangedEventArgs("Item[]"));
}
} public event PropertyChangedEventHandler PropertyChanged;
}

  

运行效果是一样的,但索引绑定依赖代码性更少,更符合oop的思想。

源码地址:https://files.cnblogs.com/files/lizhijian/%E7%B4%A2%E5%BC%95%E7%BB%91%E5%AE%9A.rar

谢谢阅读,希望可以帮助到你。

最新文章

  1. 谈谈一些有趣的CSS题目(五)-- 单行居中,两行居左,超过两行省略
  2. tcpdump、nc网络工具使用
  3. Jquery源码学习(第一天)
  4. Log4j框架
  5. struts2和spring3.2的整合 详细演示
  6. scala 学习笔记(02) 元组Tuple、数组Array、Map、文件读写、网页抓取示例
  7. python大数据工作流程
  8. lintcode:最长公共子序列
  9. Java-Hirbernate小结大纲
  10. 转:分享13款PHP开发框架
  11. PHP优化的总结
  12. jquery 实现table的动态合并列
  13. Web前端:如何实现选择select下拉框选中跳转其他页面
  14. java.lang.NumberFormatException
  15. 大数据 --&gt; Spark和Hadoop作业之间的区别
  16. sql with as 用法-Z
  17. 使用JavaScript动态的添加组件
  18. document.querySelectorAll() 兼容 IE6
  19. 在IIS Express中配置和启动web site
  20. 部署前准备--使用Mysql之Django Debug Toolbar安装以及配置

热门文章

  1. [51nod1297]管理二叉树
  2. HDU5135 dfs搜索 枚举种数
  3. JAVA代码实现嵌套层级列表,POI导出嵌套层级列表
  4. [国嵌笔记][027][ARM协处理器访问指令]
  5. TypeScript笔记 4--变量声明
  6. python来写打飞机
  7. 怎么获取smtp服务器用户帐号和密码
  8. J.U.C FutureTask之源码解析
  9. tomcat 部署war项目
  10. C语言 模2除法