Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/306.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# 是否可以将变量绑定到集合项_C#_Wpf_Binding_Variables_Collections - Fatal编程技术网

C# 是否可以将变量绑定到集合项

C# 是否可以将变量绑定到集合项,c#,wpf,binding,variables,collections,C#,Wpf,Binding,Variables,Collections,我试图绑定到集合中的一个项,但该项的索引必须是“变量”。 以以下伪语法为例: <TextBlock Text="{Binding Fields[{Binding Pos}]}" /> 这样的事情可能吗?如果my property Pos为1,则它应绑定到集合“字段”中的第一项,如果my Pos为3,则它应绑定到集合中的第三项。我把我的问题简化为这种情况 这样做可行吗?如何实现?为什么不使用一个属性返回集合中的当前项并将其绑定到WPF控件 例如: class myCollecti

我试图绑定到集合中的一个项,但该项的索引必须是“变量”。 以以下伪语法为例:

<TextBlock Text="{Binding Fields[{Binding Pos}]}" />

这样的事情可能吗?如果my property Pos为1,则它应绑定到集合“字段”中的第一项,如果my Pos为3,则它应绑定到集合中的第三项。我把我的问题简化为这种情况


这样做可行吗?如何实现?

为什么不使用一个属性返回集合中的当前项并将其绑定到WPF控件

例如:

class myCollection
{

    private string _current;

    public string CurrrentField
    {
         get { return _current; }
    }

    // TODO: Set current item to whatever the current item is...
}
编辑:

在这种情况下,我认为您需要创建一个helper类,该类跟踪数据网格中的列,然后与集合中的项对齐,以便绑定到UI的属性正确更新

首先填充集合,然后知道其中有多少项,然后使用helper类在集合中循环并将项分配给属性,然后移动到网格中的下一列,等等


我认为这归结为你自己为它写一个算法。

是的,这是可能的。您应该实现绑定转换器,该转换器将集合转换为集合项,并将索引作为转换器参数。然后您将像这样使用它:

<TextBlock Text="{Binding Fields, 
                  Converter={StaticResource CollectionToItemConverter,
                  ConverterParameter={Binding Pos}}}" />

如果您需要此转换器的代码或有关转换器的其他信息,请留下评论


希望有帮助。

尝试在ICollectionView上阅读。。。它可以帮助你,因为它可以自动为你提供项目的索引以绑定你的文本。

因为我使用的是集合中的所有元素,但绑定方式不同。就像我说的,这只是问题本身的简化。我在datagrid的列中使用它,我希望datagrid的所有列都使用相同的模板(但第一列绑定到字段[0],第二列绑定到字段[1]等等,我不知道ui将来会有多少列。这是从数据库生成的)。基本上可以归结为解决上述问题。但是谢谢你提出这个可能性。很高兴听到它!=)如果这对你有用,别忘了接受答案。=)很抱歉上一次我必须解决这个问题,所以我不能真正测试它。现在我有一个类似的问题,测试了它。因为ConverterParameter不是DependencyProperty,所以不起作用。既然您没有在该方法中获取集合,那么如何实现
ConvertBack
方法?您能描述一下您需要从值转换回集合的情况吗?