Как привязать более одного значения к столбцу DatagridTemplate в silverlight? - PullRequest
0 голосов
/ 05 декабря 2009

У меня есть столбец с кнопкой для редактирования строки, но ключ id - это не единственное значение, а три значения. Как я могу установить три значения в кнопке, чтобы при нажатии на кнопку я мог получить три значения в коде позади?

Колонна

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

Я хочу пройти через w1, wid2, wid3. Кроме того, можно передать значение с помощью строкового значения wId1 + wId2 + wId3?

Пожалуйста, посоветуйте мне что-нибудь об этом, большое спасибо.

Ответы [ 2 ]

1 голос
/ 05 декабря 2009

Почему вы не привязываете весь объект DataContext с помощью {Binding}. В коде позади вы можете привести DataContext к вашему типу объекта и получить доступ к любому атрибуту, который вы хотите.

Вы также можете иметь собственный атрибут с массивом или списком различных идентификаторов и связывать его.

Если по какой-то причине вы хотите передать только идентификаторы в код, вы можете использовать ValueConverter, который возвращает только список или массив для идентификаторов.

{Binding Converter={StaticResource MyConverter}}

Надеюсь, это поможет.

0 голосов
/ 05 декабря 2009

Вы можете привязать к любому общедоступному свойству, поэтому одним из вариантов может быть свойство, которое просто возвращает объединенные строки? Что-то вроде:

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

И затем связывайтесь с этим. Было бы интересно, если бы был более элегантный способ, но это должно было бы сделать работу.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...