C# 将DataGridHyperlinkColumn绑定设置为URI属性
我不知道该怎么办。我试图在代码后面设置一个C# 将DataGridHyperlinkColumn绑定设置为URI属性,c#,wpf,binding,uri,datagridcolumn,C#,Wpf,Binding,Uri,Datagridcolumn,我不知道该怎么办。我试图在代码后面设置一个DataGridHyperlinkColumn,这样所有链接都指向相同的URI,但每个都有不同的属性值 以下是我到目前为止的情况: DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn(); dgCol.Header = title; dgCol.ContentBinding = new Binding("PersonName"); dgCol.Binding = "PersonEdit
DataGridHyperlinkColumn
,这样所有链接都指向相同的URI,但每个都有不同的属性值
以下是我到目前为止的情况:
DataGridHyperlinkColumn dgCol = new DataGridHyperlinkColumn();
dgCol.Header = title;
dgCol.ContentBinding = new Binding("PersonName");
dgCol.Binding = "PersonEditPage.xaml?PersonID=" + Binding("PersonID");
当然,dgCol.Binding
需要一个Binding对象,所以我不能只向其中添加一个字符串。你能帮我正确创建这个绑定吗
我没有找到任何有用的东西,但也许这是因为我不知道我应该寻找什么。以下是我一直在看的一些东西(如果我错过了什么,请原谅我):
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();
}
}
谢谢你的回答。我猜,Binding.StringFormat
属性不起作用,因为绑定需要转换为URI而不是字符串。是吗?@Ben:是的,只有当目标属性的数据类型为string
时,才能使用StringFormat
属性。