WPF Nadpisanie wartości bindów w zależności od właściowści

0

Binduje w ten sposób w viewmodelu:

                    <TextBox>
                        <TextBox.Text>
                            <MultiBinding StringFormat=" {0}{1}" UpdateSourceTrigger="PropertyChanged">
                                <Binding Path="Value"/>
                                <Binding Path="Unit"/>
                            </MultiBinding>
                        </TextBox.Text>
                    </TextBox>

Czy da się w jakiś sposób np. poprzez zmiany w stylu wymusić zastąpienie wartości Text, kiedy ustawimy np. IsEnabled = false.
Zrobiłbym to oczywiście z viewmodelu, ale Value jest typu double.

0

Możesz to zrobić np. trigger'em.

0
cSharpKazik napisał(a):

Możesz to zrobić np. trigger'em.

Niestety nie nadpisuje wartości bindów :<

styl:

            <Style TargetType="{x:Type TextBox}">
                <Setter Property="Width" Value="70"/>
                <Setter Property="Height" Value="40"/>
                <Setter Property="IsReadOnly" Value="True"/>

                <Setter Property="Padding" Value="0, 8"/>
                <Setter Property="TextAlignment" Value="Center"/>
                <Setter Property="BorderThickness" Value="0"/>

                <Setter Property="FontSize" Value="18"/>
                <Setter Property="Foreground" Value="{DynamicResource BrushDark}"/>

                <Setter Property="BorderThickness" Value="0"/>
                <Setter Property="Background" Value="{DynamicResource BackgroundBrush}"/>
                <Style.Triggers>
                    <Trigger Property="IsEnabled" Value="False">
                        <Setter Property="Text" Value="-"/>
                    </Trigger>
                    <Trigger Property="IsFocused" Value="True">
                        <Setter Property="Background" Value="{DynamicResource BackgroundBrushLight}"/>
                    </Trigger>
                </Style.Triggers>
            </Style>
1

To może dodaj MultiValueConverter razem z właściwością która binduje IsEnabled i jeśli IsEnabled == False to zwracaj "-", a w przeciwnym wypadku $"{Value} {Unit}"

1 użytkowników online, w tym zalogowanych: 0, gości: 1