Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/312.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 能否将数据绑定到Silverlight中包含参数的属性?_C#_.net_Vb.net_Silverlight - Fatal编程技术网

C# 能否将数据绑定到Silverlight中包含参数的属性?

C# 能否将数据绑定到Silverlight中包含参数的属性?,c#,.net,vb.net,silverlight,C#,.net,Vb.net,Silverlight,在silverlight中,可以绑定到包含参数的属性吗?例如,以下内容似乎不起作用。我是否遗漏了什么,或者这是不可能的 C# XAML 您的C#有点不稳定-您需要方括号:ValuesField[FieldName] 没有理由不能单向绑定到从索引集合返回的值,但是对于SL3,可以传入的值非常有限,无法指定要使用的索引 检查SL3的功能,以及SL4中可能出现的一些示例。在SL4中,您可以使用字符串索引,但看起来您无法使它们成为动态的,它们必须进行静态(硬)编码。请注意,SL具有WPF所具有的绑定功

在silverlight中,可以绑定到包含参数的属性吗?例如,以下内容似乎不起作用。我是否遗漏了什么,或者这是不可能的

C#

XAML


您的C#有点不稳定-您需要方括号:
ValuesField[FieldName]

没有理由不能单向绑定到从索引集合返回的值,但是对于SL3,可以传入的值非常有限,无法指定要使用的索引


检查SL3的功能,以及SL4中可能出现的一些示例。在SL4中,您可以使用字符串索引,但看起来您无法使它们成为动态的,它们必须进行静态(硬)编码。请注意,SL具有WPF所具有的绑定功能的子集,因此您在WPF中看到的内容不必应用于SL。

VB具有创建参数化属性所需的语法,但C不支持参数化属性

XAML解析也无法识别参数化属性

因此,你的问题的简单答案是否定

在C#中模拟这一点的一种方法是在(现在是无参数的)属性上公开类型,该属性具有获取所需参数的索引器。注意:为了与XAML兼容,索引器仅限于具有int和/或string类型的单个参数


这样,您就可以在绑定中使用类似“property[parametervalue]”的属性路径。

尝试使用IValueConverter进行绑定

您能否详细介绍一下如何执行此操作?
private System.Collections.Generic.Dictionary<string, string> ValuesField = new System.Collections.Generic.Dictionary<string, string>();
public string Value {
    get { return ValuesField(FieldName); }
    set { ValuesField(FieldName) = value; }
}
Private ValuesField As New System.Collections.Generic.Dictionary(Of String, String)
Public Property Value(ByVal FieldName As String) As String
        Get
            Return ValuesField(FieldName)
        End Get
        Set(ByVal value As String)
            ValuesField(FieldName) = value
        End Set
End Property
<TextBox Name="TextBox1" VerticalAlignment="Top" Width="120"Text="{Binding Path=Value[MyField],Mode=TwoWay }"  />