不知道如何解决这个问题。我正在尝试在代码隐藏中设置DataGridHyperlinkColumn
,以便所有链接指向相同的URI,但每个链接都有不同的属性值。
这是我到目前为止所做的:
DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn();
dgCol.Header = title;
dgCol.ContentBinding = new Binding("PersonName");
dgCol.Binding = "PersonEditPage.xaml?PersonID=" + Binding("PersonID");
当然dgCol.Binding
期待一个Binding对象,所以我不能只为它添加一个字符串。你能帮我正确地创建这个绑定吗?
我找不到任何有用的东西,但也许这是因为我不知道我应该寻找什么。以下是我一直在关注的一些事情(如果我错过了一些请原谅我):
答案 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();
}
}