Как отобразить «Элементы не найдены» в таблице данных - PullRequest
1 голос
/ 23 августа 2011
               <dg:DataGrid.Resources>
                        <ViewModel:SmartMessenger  x:Key="Noitemsfound">
                        </ViewModel:SmartMessenger>
                      </dg:DataGrid.Resources>
                 <dg:DataGrid.RowDetailsTemplate>
                        <DataTemplate>
                          <StackPanel>`enter code here`
                            <TextBlock Text="{Binding Source={StaticResource         Noitemsfound }, Path=pNorecords,Mode=TwoWay}" />
                          </StackPanel>
                        </DataTemplate>
                 </dg:DataGrid.RowDetailsTemplate>

Здесь я пытаюсь связать текстовый блок, который будет отображать сообщение, когда в сетке данных нет элементов. Я использую VS 2008 Express Edition. Проблема заключается в том, что я не могу связать свойство Noitems с кодом класса SmartMessenger ... Чего здесь не хватает ???

Ответы [ 2 ]

5 голосов
/ 23 августа 2011

если вы просто хотите отобразить сообщение в вашей таблице данных, когда нет элементов - вы можете сделать это с помощью стиля. Поместите этот стиль в свои ресурсы App.xaml или, по крайней мере, в свои ресурсы сетки данных.

    <Style x:Key="{x:Type ItemsControl}" TargetType="{x:Type ItemsControl}">
    <Style.Triggers>
        <DataTrigger Binding="{Binding Items.Count, RelativeSource={RelativeSource Self}}" Value="0">
            <Setter Property="Background">
                <Setter.Value>
                    <VisualBrush Stretch="None">
                        <VisualBrush.Visual>
                            <TextBlock Text="no items" 
                                       FontFamily="{StaticResource FontFamily}"
                                       FontSize="{StaticResource FontSize}"/>
                        </VisualBrush.Visual>
                    </VisualBrush>
                </Setter.Value>
            </Setter>
        </DataTrigger>
        <DataTrigger Binding="{Binding Items, RelativeSource={RelativeSource Self}}" Value="{x:Null}">
            <Setter Property="Background">
                <Setter.Value>
                    <VisualBrush Stretch="None">
                        <VisualBrush.Visual>
                            <TextBlock Text="no items" 
                                       FontFamily="{StaticResource FontFamily}"
                                       FontSize="{StaticResource FontSize}"/>
                        </VisualBrush.Visual>
                    </VisualBrush>
                </Setter.Value>
            </Setter>
        </DataTrigger>
    </Style.Triggers>
</Style>
<Style x:Key="{x:Type DataGrid}" TargetType="{x:Type DataGrid}" BasedOn="{StaticResource {x:Type ItemsControl}}">
</Style>
1 голос
/ 23 августа 2011

Проверьте окно вывода.Произошла ошибка / исключение привязки дампов WPF к окнам вывода.Там вы получите возможность проверить, является ли он привязанным к правильному источнику, правильный путь и т. Д.

Вы также можете попробовать добавить фиктивный преобразователь в выражение привязки.Конвертер предоставляет вам возможность отладки связующего выражения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...