Csharpest
Csharpest

Reputation: 1268

XAML Label Text: Binding + DynamicResource (String Format?)

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

Answers (2)

Isma
Isma

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

Kacper Stachowski
Kacper Stachowski

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

Related Questions