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

データがバインドされるまでバーを非表示にする1つの方法は、トリガーを使用して、値に応じて可視性を設定することです。

DataTemplateで:

<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 に答える