Can’t see the trees through the forest.
Trying a simple databinding and I want to format the value with a converter. (In this converter example, numeric data that is 0 is not displayed.)
Resource:
<conv:FormattingConverter x:Key="FormattingConverter"/>
<Style x:Key="EGTSTextBoxInt" TargetType="TextBox">
<Setter Property="Background" Value="{StaticResource CC_BACKGROUND}" />
<Setter Property="Foreground" Value="{StaticResource CC_FOREGROUND}" />
<Setter Property="FontFamily" Value="{StaticResource DefaultFont}" />
<Setter Property="FontSize" Value="{StaticResource DefaultFontSize}" />
<Setter Property="FontWeight" Value="Normal" />
<Setter Property="FontStyle" Value="Normal" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="VerticalAlignment" Value="Center"
<Setter Property="HorizontalAlignment" Value="Center" />
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="IsReadOnly" Value="True" />
</Style>
Textbox:
<TextBox Name="Bill_Item"
Grid.Column="6"
MinWidth="46"
MinHeight="23"
Style="{StaticResource EGTSTextBoxInt}"
Text="{Binding Path=Item, Mode=TwoWay,
Converter={StaticResource FormattingConverter},
ConverterParameter=\{0:G\}}" />
What I want to do is get the Converter code embedded in the style so that I don’t have to spell it out in each Text=line.
Adding code behind the XAML to do anything for this is not an option!
I am looking for a pure XAML method.
I am still trying to grasp how certain things are done in Styles.
Brian
There are several ways to do this.
But before you even start:
1) Define a custom markup extension
The idea is to inherit from the Binding markup extension that allows you to write
Text ="{Binding SomeProperty}".You can find an example of someone who made his own binding here
This solution does not allow you to put the feature in a style.
2) Define an attached property
that will modify the Binding of the default property of a control (in your case, Text is the default property of TextBox, as you can do
<TextBox>my text</TextBox>) in order to use the converter you want, automatically.This actually allows you to put set this attached property in a style. It is, however, very bad practice. It’s as bad a magic strings.
3)Don’t do this, just don’t.
Write the converter each time.