1

目前我有一个LinearGradientBrush显示为条形图。问题是在我的程序启动时(还没有来自数据绑定的值)我的屏幕上到处都是白条,因为GradientBrush它还没有值并将其显示为默认值。

在实际获得其数据绑定值之前,我究竟如何确保没有任何显示。

如何使它不可见,直到它获得价值?

代码DataTemplate及其itemsControl使用位置:

 <ItemsControl x:Name="icGrafiek"  
                Margin="0,0,0,0" 
                ItemsSource="{Binding Source={StaticResource Grafiek}}"
                ItemTemplate="{DynamicResource GrafiekItemTemplate}" 
                RenderTransformOrigin="1,0.5" Grid.RowSpan="6" Grid.Column="1"

<DataTemplate x:Key="GrafiekItemTemplate">
            <Grid>
                <Border Height="30" Margin="15" Grid.RowSpan="6">
                    <Border.Background>
                        <LinearGradientBrush StartPoint="0.0,0" EndPoint="1.0,0">
                            <GradientStopCollection>                               
                                <GradientStop Offset="0.0" Color="{Binding FillBar, UpdateSourceTrigger=PropertyChanged}" />
                                <GradientStop Offset="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
                                              Color="{Binding FillBar, UpdateSourceTrigger=PropertyChanged}"/>

                                <GradientStop Offset="{Binding Value, UpdateSourceTrigger=PropertyChanged}"
                                              Color="Transparent"/>
                                <GradientStop Offset="1" Color="Transparent" />
                            </GradientStopCollection>
                        </LinearGradientBrush>
                    </Border.Background>
                </Border>
            </Grid>
        </DataTemplate>
4

1 回答 1

2

在数据绑定之前隐藏条的一种方法是使用触发器根据某个值设置可见性。

在您的数据模板中:

<DataTemplate x:Key="GrafiekItemTemplate">
    <Grid x:Name="grid">
    ...
    </Grid>
    <DataTemplate.Triggers>
        <DataTrigger Binding="{Binding Path=Value}" Value="{x:Null}">
            <Setter TargetName="grid" Property="Visibility" Value="Collapsed" />
        </DataTrigger>
    </DataTemplate.Triggers>

您可能必须为 DataTrigger 中的绑定路径使用与“Value”不同的值,但这应该可以帮助您入门。

于 2012-05-03T11:11:50.750 回答