Cra*_*aig 6 c# data-binding indexing wpf xaml
我有一个绑定的形式:
Path=SpecialCollection[0]
Run Code Online (Sandbox Code Playgroud)
SpecialCollection类扩展了ObservableCollection并具有索引器属性.
public T this[string propertyValue]
{
get
{
// do stuff
return default(T);
}
}
Run Code Online (Sandbox Code Playgroud)
我的问题是绑定尝试获取索引器属性值,而不是返回集合中的第0项.有没有办法强制绑定将0视为一个整数,因此它返回一个集合元素,而不是调用集合的索引器属性的getter?
H.B*_*.B. 14
根据MSDN,您可以告诉绑定作为索引输入的值的类型:
在索引器内部,您可以使用逗号(,)分隔多个索引器参数.可以使用括号指定每个参数的类型.例如,您可以使用Path ="[(sys:Int32)42,(sys:Int32)24]",其中sys映射到System命名空间.
我注意到,Binding构造采取的路径字符串使用另一个PropertyPath构造比默认的PropertyPath类型转换器,称PropertyPath构造函数不能在这种情况下工作.要避免此问题,请Binding通过Path手动设置属性来避免构造函数,该属性通过类型转换器调用转换.
<!-- Does not work -->
<TextBlock Text="{Binding [(sys:Int32)0]}"/>
<!-- Does work -->
<TextBlock Text="{Binding Path=[(sys:Int32)0]}"/>
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3505 次 |
| 最近记录: |