1

这是我的带有转换器的文本框:

 <TextBox Text="{Binding TimbraturaSelezionata.OrarioMinuti, Converter={StaticResource Minuti2HHmmConverter}}" Margin="5,0"/>

我寻找一种仅在有效需要时设置或更改转换器的方法。事实上,我想将该 TextBox 放在通用用户控件中,并仅在满足特定条件时应用转换器。我想到的唯一解决方案是使用ContentControl并使用两个DataTrigger设置其模板,一个在 TextBox 内使用 Converter,一个不使用。我希望找到一种更清晰的方法来实现我的目标。

感谢您的任何建议。

4

2 回答 2

0

由于您已设置触发器。这是一个例子。希望能帮助到你;

<TextBox x:Name="MyTextBox" Text="{Binding TimbraturaSelezionata.OrarioMinuti}" Margin="5,0">
    <i:Interaction.Triggers>
      <ei:DataTrigger Value="False"
                      Binding="{Binding YourCondition, ElementName=MyTextBox}">
          <ei:ChangePropertyAction PropertyName="Text"
                                   Value="{Binding TimbraturaSelezionata.OrarioMinuti}" />
      </ei:DataTrigger>
      <ei:DataTrigger Value="True"
                      Binding="{Binding YourCondition, ElementName=MyTextBox}">
          <ei:ChangePropertyAction PropertyName="Text"
                                   Value="{Binding TimbraturaSelezionata.OrarioMinuti, Converter={StaticResource Minuti2HHmmConverter}}" />
       </ei:DataTrigger>
    </i:Interaction.Triggers>
</TextBox>
于 2013-04-03T19:11:00.487 回答
0

另一个可行的解决方案如下:

<TextBox  Width="100">
            <TextBox.Style>
                <Style TargetType="{x:Type TextBox}">
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding   ValoreInMinuti}" Value="True">
                            <Setter Property="Background" Value="Red" />
                            <Setter Property="Text" Value="{Binding Quantita, Converter={StaticResource Minuti2HHmmConverter}}" />    
                        </DataTrigger>
                        <DataTrigger Binding="{Binding   ValoreInMinuti}" Value="False">
                            <Setter Property="Background" Value="Yellow" />
                            <Setter Property="Text" Value="{Binding Quantita}" />

                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBox.Style>
        </TextBox>

请注意,Text 属性仅通过 DataTrigger 设置。在我的具体情况下,我只有两种可能性,一种有转换器,另一种没有。

于 2013-04-05T08:57:39.137 回答