将DataGridHyperlinkColumn绑定设置为URI属性

时间:2014-06-14 11:09:56

标签: c# wpf binding uri datagridcolumn

不知道如何解决这个问题。我正在尝试在代码隐藏中设置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 个答案:

答案 0 :(得分:1)

您需要使用转换器来格式化包含当前属性的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();
    }
}