绑定到Boolean属性时设置TextBlock的默认值

时间:2013-05-07 14:52:04

标签: c# wpf xaml

我将文本块绑定到布尔属性。我要做的是 - 如果是false我想要的值是In Progress如果是true我希望它是Completed

我正在使用带有WPF应用程序的C#,文本块是树视图的一部分。

<DataTemplate>
 <Grid>
   <Grid.ColumnDefinitions>
     <ColumnDefinition></ColumnDefinition>
     <ColumnDefinition></ColumnDefinition>
    </Grid.ColumnDefinitions>
     <TextBlock Grid.Column="0" FontFamily="Sagoe UI" FontSize="14" Text="{Binding Path=BaseNumber, StringFormat='Device Number {0}.'}" Padding="2" Width="200" />
     <TextBlock Grid.Column="1" FontFamily="Sagoe UI" FontSize="14" Text="{Binding Path=BaseMode}" Padding="2" />
 </Grid>
</DataTemplate>

绑定到BaseMode的TextBlock是我想为其设置值的那个。

谢谢!

3 个答案:

答案 0 :(得分:2)

不要绑定Text,而是在Style中设置DataTriggers,然后将Text设置为true / false。 (还要注意precedence不要覆盖样式)

答案 1 :(得分:2)

您可以使用的是ValueConverter。看看以下教程是否对您有所帮助:

http://wpftutorial.net/ValueConverters.html

http://drwpf.com/blog/category/value-converters/

答案 2 :(得分:2)

 <TextBlock Grid.Column="1" FontFamily="Sagoe UI" FontSize="14" Padding="2" >
            <TextBlock.Style>
                <Style TargetType="TextBlock" >
                    <Setter Property="Text" Value="In Progress"/>
                    <Style.Triggers>
                        <DataTrigger Binding="{Binding BaseMode}" Value="true">
                           <Setter Property="Text" Value="Completed"/>
                        </DataTrigger>
                    </Style.Triggers>
                </Style>
            </TextBlock.Style>
  </TextBlock>