У меня есть этот код
<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 !
РЕШЕНИЕ:
<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();
}
}