Имеется источник данных и DataGrid. Нужно заполнить последнюю колонку ссылками, ссылки будут однотипные примера somesite.ru/user?id=ID, где id берестся из ItemSource. Все никак с Binding разобраться не могу.
Ответ
А что сложного?
Создаёте конвертер:
class UriConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter,
CultureInfo culture)
{
var id = (string)value;
return new Uri("http://somesite.ru/user?id=" + id);
}
public object ConvertBack(object value, Type targetType, object parameter,
CultureInfo culture)
{
throw new NotSupportedException();
}
}
Затем, положите его в ресурсы вашего окна:
И используйте для конвертации:
Подписка на RequestNavigate нужна для того, чтобы работали ссылки.
void OnRequestNavigate(object sender, System.Windows.Navigation.RequestNavigateEventArgs e)
{
var uri = e.Uri.AbsoluteUri;
Task.Run(() => Process.Start(uri));
e.Handled = true;
}
Вроде бы всё, должно работать.
Комментариев нет:
Отправить комментарий