Страницы

Поиск по вопросам

четверг, 13 февраля 2020 г.

WPF. Нужно колонку заполнить ссылками

#c_sharp #wpf #xaml #binding #datagrid


Имеется источник данных и DataGrid. Нужно заполнить последнюю колонку ссылками, ссылки
будут однотипные примера somesite.ru/user?id=ID, где id берестся из ItemSource. Все
никак с Binding разобраться не могу.


        
            
            
            
            
            
            
                
                    
                        
                            
                        
                    
                
            
        
        
            

            
        
    

    


Ответы

Ответ 1



А что сложного? Создаёте конвертер: 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; } Вроде бы всё, должно работать.

Ответ 2



А еще проще через форматирование вот как выглядит биндинг {Binding YourProperty, StringFormat='somesite.ru/user?id={0}'} Ну а в вашем случае просто {Binding StringFormat='somesite.ru/user?id={0}'} Короче все то же самое, что написал VladD, только без конвертера

Комментариев нет:

Отправить комментарий