Установка привязки DataGridHyperlinkColumn в качестве атрибута URI
Не уверен, как это сделать. Я пытаюсь настроить DataGridHyperlinkColumn
в коде позади, так что все ссылки указывают на один и тот же URI, но каждая имеет свое значение атрибута.
Вот что у меня так далеко:
DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn();
dgCol.Header = title;
dgCol.ContentBinding = new Binding("PersonName");
dgCol.Binding = "PersonEditPage.xaml?PersonID=" + Binding("PersonID");
Конечно dgCol.Binding
ожидает объект Binding, и поэтому я не могу просто добавить строку к этому. Не могли бы вы помочь мне правильно создать эту привязку?
Я не смог найти ничего полезного, но, возможно, это потому, что я не знаю, что мне следует искать. Вот некоторые вещи, на которые я смотрел (если я что-то пропустил, пожалуйста, прости меня):
1 ответ
Решение
Вам необходимо использовать конвертер для форматирования строки URL, содержащей PersonID
текущего имущества:
DataGridHyperlinkColumn hypCol = new DataGridHyperlinkColumn();
hypCol.Header = "Link";
hypCol.ContentBinding = new Binding("PersonName");
hypCol.Binding = new Binding("PersonID") {
Converter = new FormatStringConverter(),
ConverterParameter = "PersonEditPage.xaml?PersonID={0}"
};
Преобразователь определяется следующим образом:
public class FormatStringConverter : IValueConverter
{
public object Convert(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
if (value == null || parameter == null)
{
return null;
}
return string.Format(parameter.ToString(), value.ToString());
}
public object ConvertBack(object value, Type targetType,
object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}