WPF中,多key值绑定问题,一个key绑定一个界面上的对象
2021-02-17 17:18
阅读:563
问题说明:
当用到dictionary
一种是写一个自定义的扩展类,类似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 _localDictionary = new Dictionary ();
[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
谢谢阅读,希望可以帮助到你。
上一篇:WPF与Win32互操作
下一篇:C# 委托,事件, 异步
文章来自:搜素材网的编程语言模块,转载请注明文章出处。
文章标题:WPF中,多key值绑定问题,一个key绑定一个界面上的对象
文章链接:http://soscw.com/essay/56666.html
文章标题:WPF中,多key值绑定问题,一个key绑定一个界面上的对象
文章链接:http://soscw.com/essay/56666.html
评论
亲,登录后才可以留言!