0

シルバーライト5

DataGrid にデータがないときに TextBlock を表示しようとしています。

DataGrid で何にバインドしますか?

以下のように Visibility にバインドすると、グリッドにデータがない場合でも常に true を返します。

    <TextBlock Grid.Row="4" HorizontalAlignment="Center" Text="No User Accounts found." 
Visibility="{Binding ElementName=AccountGridT32, Path=Visibility, 
Converter={StaticResource NegateVisibilityConverter}}" />

    <Grid Grid.Row="5">
    <sdk:DataGrid x:Name="AccountGridT32" 
ItemsSource="{Binding Data, ElementName=AccountsDataSourceT32}" Grid.Column="0" Grid.Row="1" 
    ScrollViewer.HorizontalScrollBarVisibility="Auto" />
    </Grid>
4

1 に答える 1

0

私がしていることは、texblock の可視性をリストボックス/グリッドの項目数にバインドすることです...

<TextBlock Grid.Row="4" HorizontalAlignment="Center" Text="No User Accounts found." 
Visibility="{Binding ItemsSource.Count, ElementName=AccountGridT32, Converter={StaticResource listCountToVis}, ConverterParameter=true}" />

私のコンバーター:

public class ListCountToVisibilityConverter : IValueConverter
    {
        #region IValueConverter Members

        public object Convert(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            if (value == null || !(value is int))
                return Visibility.Collapsed;

            bool booInvert = false;
            if (parameter is string) bool.TryParse((string)parameter, out booInvert);

            if (booInvert) return ((int)value) <= 0 ? Visibility.Visible : Visibility.Collapsed;
            else return ((int)value) > 0 ? Visibility.Visible : Visibility.Collapsed;


        }

        public object ConvertBack(object value, System.Type targetType, object parameter, System.Globalization.CultureInfo culture)
        {
            return null;
        }

        #endregion
    }
于 2012-10-30T18:24:22.413 に答える