2
我有這樣的代碼如何從<MultiBinding>中填充<Hyperlink> NavigateUri屬性?
<Hyperlink NavigateUri="">
<Run>
<Run.Text>
<MultiBinding StringFormat="{}{0}{1}{2}">
<Binding Path="Text" ElementName="tbxHostData" />
<Binding Path="Text" ElementName="tbxWebSiteDataName" />
<Binding Path="Text" ElementName="tbxDataServicesName" />
</MultiBinding>
</Run.Text>
</Run>
</Hyperlink>
如何使用<MultiBinding>
填充NavigateUri=""
?
有沒有可能?
由於@ThomasLevesque!
SOLUTION:
<Window.Resources>
<c:StringToUriConverter x:Key="stringToUriConverter"/>
</Window.Resources>
<Hyperlink.NavigateUri>
<MultiBinding ConverterParameter="" Converter="{StaticResource uriConverter}">
<Binding Path="Text" ElementName="tbxHostData" />
<Binding Path="Text" ElementName="tbxWebSiteDataName" />
<Binding Path="Text" ElementName="tbxDataServicesName" />
</MultiBinding>
</Hyperlink.NavigateUri>
C#
[ValueConversion(typeof(String), typeof(Uri))]
public class UriConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, CultureInfo culture)
{
Uri result;
string input = String.Join(string.Empty, values);
Uri.TryCreate(input, UriKind.RelativeOrAbsolute, out result);
return result;
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, CultureInfo culture)
{
throw new NotImplementedException();
}
}
具體地說MultiValueConverter http://msdn.microsoft.com/en-us/library/system.windows.data.imultivalueconverter.aspx –