如何将多个值绑定到Silverlight中的Datagrid模板列?

时间:2009-12-05 04:15:05

标签: silverlight

我有一个带有按钮的列,用于编辑行, 但id键不是唯一的值,而是三个值。 如何在按钮中设置三个值,以便在单击按钮时,我可以在后面的代码中获得三个值?

专栏

                    <dg:DataGridTemplateColumn Header="Edit">
                    <dg:DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <Button Content="Adjust" DataContext="{Binding wId1}" Click="EditButton_Click" />
                        </DataTemplate>
                    </dg:DataGridTemplateColumn.CellTemplate>
                </dg:DataGridTemplateColumn>

我想通过wId1,wId2,wId3。 此外,可以用字符串值wId1 + wId2 + wId3传递一个值吗?

请多多关于此的阅读建议,非常感谢。

2 个答案:

答案 0 :(得分:1)

为什么不使用{Binding}将整个对象绑定到DataContext。 在后面的代码中,您可以将DataContext强制转换为您的对象类型并访问您想要的任何属性。

您还可以拥有一个带有不同ID的数组或列表的自定义属性并将其绑定。

如果由于某种原因只想将ID传递给后面的代码,可以使用只返回列表或数组的ValueConverter到ID。

{Binding Converter={StaticResource MyConverter}}

希望它有所帮助。

答案 1 :(得分:0)

您可以绑定到任何公共属性,因此一个选项可能是拥有一个只返回连接字符串的属性?一些事情:

public string ConcatenatedValues
{
    get
    {
        return wId1 + wId2 + wId3;
    }
}

然后绑定到那个。如果有一种更优雅的方式会很有趣,但这应该可以完成工作。