Jon*_*len 1 vb.net wpf binding
鉴于此类/属性,我将如何编写 WPF 数据绑定表达式来获取myToken.DataItem("Phone")?
Class Token
Public Property DataItem(ByVal name As String) As Object
Get
If m_DataPoints.ContainsKey(name) Then Return m_DataPoints(name) Else Return Nothing
End Get
Set(ByVal value As Object)
Dim oldValue = DataItem(name)
If Object.Equals(oldValue, value) Then Return
m_DataPoints(name) = value
OnPropertyChanged("DataPoint")
End Set
End Property
End Class
Run Code Online (Sandbox Code Playgroud)
只要您的索引属性声明为默认值,绑定的索引器语法就应该适用于您:
Default Public Property DataItem(ByVal name As String) As Object
Run Code Online (Sandbox Code Playgroud)
在这种情况下,您可以使用:
<TextBox Text="{Binding Token[Phone]}" />
Run Code Online (Sandbox Code Playgroud)
或者如果您的令牌是您的 DataContext 只是:
<TextBox Text="{Binding [Phone]}" />
Run Code Online (Sandbox Code Playgroud)
WPF 的绑定语法没有访问非默认索引器的机制。如果您无法将索引器设为默认值,则必须使用转换器:
<TextBox Text="{Binding Token,ConverterParameter=Phone,Converter={x:Static my:DataItemAccessor.Instance}}" />
Run Code Online (Sandbox Code Playgroud)
DataItemAccessor您编写的实现 IValueConverter 并访问 DataItem 的普通类在哪里。
| 归档时间: |
|
| 查看次数: |
6369 次 |
| 最近记录: |