将DataGridHyperlinkColumn绑定设置为URI属性

本文关键字:URI 属性 设置 DataGridHyperlinkColumn 绑定 | 更新日期: 2023-09-27 18:08:40

不知道该怎么做。我试图在代码后面设置一个DataGridHyperlinkColumn,以便所有链接指向相同的URI,但每个都有不同的属性值。

到目前为止我写的是:

DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn();
dgCol.Header = title;
dgCol.ContentBinding = new Binding("PersonName");
dgCol.Binding = "PersonEditPage.xaml?PersonID=" + Binding("PersonID");

当然dgCol.Binding期待一个绑定对象,所以我不能只是添加一个字符串到这个。你能帮我正确创建这个绑定吗?

我没能找到任何有用的东西,但也许这是因为我不知道我应该找什么。以下是我一直在看的一些东西(如果我错过了什么,请原谅我):

  • MSDN导航概述
  • MSDN绑定概述
  • 关于绑定的帖子
  • <
  • WPF导航/gh>
  • URI属性发布

将DataGridHyperlinkColumn绑定设置为URI属性

您需要使用转换器来格式化包含当前属性的PersonID的URL字符串:

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();
    }
}