I need to replace a ,
with ,\n
(New Line) in my string
i want to do it on ClientSide in StringFormat
<TextBlock Grid.Row="0" Text="{Binding Address}" Grid.RowSpan="3" />
How can i do this?
I need to replace a ,
with ,\n
(New Line) in my string
i want to do it on ClientSide in StringFormat
<TextBlock Grid.Row="0" Text="{Binding Address}" Grid.RowSpan="3" />
How can i do this?
You can't do this via a StringFormat
binding operation, as that doesn't support replacement, only composition of inputs.
You really have two options - expose a new property on your VM that has the replaced value, and bind to that, or use an IValueConverter
to handle the replacement.
A value converter could look like:
public class AddNewlineConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, CultureInfo culture)
{
string original = Convert.ToString(value);
return original.Replace(",", ",\n");
}
public object ConvertBack(object value, Type targetType, object parameter, CultureInfo culture)
{
throw new NotImplemnentedException();
}
}
You'd then use this in your binding. You could add a resource:
<Window.Resources>
<local:AddNewlineConverter x:Key="addNewLineConv" />
</Window.Resources>
In your binding, you'd change this to:
<TextBlock Grid.Row="0"
Text="{Binding Path=Address, Converter={StaticResource addNewLineConv}}"
Grid.RowSpan="3" />