Reputation: 1268
For Xamarin.Forms - XAML files:
is there a way to bind the Text Property (in XAML) of a Label to a Binding + DynamicResource? Maybe with string format?
for example I tried something like this:
<Label Text="{DynamicResource resource, Binding binding, StringFormat='Resource: {0} and Binding: {1}"} />
But one cannot declare a binding if a dynamic resource is set, same problem if trying it vice versa (eg. no dynamicresource if binding already set)
Upvotes: 3
Views: 3626
Reputation: 15209
Seems like MultiBinding is not supported in Xamarin.Forms applications.
This is a nice workaround that kind of implements full multibinding support for Xamarin:
http://intellitect.com/multibinding-in-xamarin-forms/
Here is a simpler implementation ready to be used:
https://gist.github.com/Keboo/0d6e42028ea9e4256715
And a discussion about the subject:
https://forums.xamarin.com/discussion/21034/multibinding-support
Upvotes: 2
Reputation: 975
I think what you need is MultiBinding.
Try creating a converter class like this:
public class MultiBindingConverter : IMultiValueConverter
{
public object Convert(object[] values, Type targetType, object parameter, System.Globalization.CultureInfo culture)
{
return values[0].ToString() + " " + values[1].ToString();
}
public object[] ConvertBack(object value, Type[] targetTypes, object parameter, System.Globalization.CultureInfo culture)
{
throw new NotImplementedException();
}
}
Reference it in your App.xaml or other resource dictionary
<local:MultiBindingConverter x:Key="MultiBindingConverter" />
Then do something like this in your View:
<Label>
<Label.Content>
<MultiBinding Converter="{StaticResource MultiBindingConverter}">
<Binding Path="FirstProperty" />
<Binding Path="SecondProperty" />
</MultiBinding>
</Label.Content>
</Label>
FirstProperty and SecondProperty are just regular properties in ViewModel.
Upvotes: 0