0

不知道该怎么做。我正在尝试DataGridHyperlinkColumn在代码隐藏中设置 a ,以便所有链接都指向相同的 URI,但每个链接都有不同的属性值。

这是我到目前为止所拥有的:

DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn();
dgCol.Header = title;
dgCol.ContentBinding = new Binding("PersonName");

dgCol.Binding = "PersonEditPage.xaml?PersonID=" + Binding("PersonID");

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

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

4

1 回答 1

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();
    }
}
于 2014-06-14T12:46:23.470 回答