Сообщение об отсутствии результатов в таблице WPF - PullRequest
1 голос
/ 25 июня 2010

Мне нужно отобразить результаты поиска в формате Grid. Но когда поиск приводит к нулю совпадений, я должен иметь возможность показать сообщение «0 результатов найдено» во второй строке таблицы, причем первая строка содержит все заголовки столбцов.

Какой элемент управления я могу использовать в WPF для достижения этой цели? Есть способы сделать это без строки заголовка, но мне нужно отобразить заголовок столбца с сообщением в строках данных.

Ответы [ 2 ]

0 голосов
/ 31 января 2013

Я бы, вероятно, пошел на подход к настройке вашей Grid с вашими заголовками и строками результатов - если вы используете элемент управления Grid layout, то я предполагаю, что вы создаете определения строк для хранения результатов,или просто используя StackPanel во второй строке для хранения результатов, если вы используете специальный элемент управления DataGrid-esque, то это нормально.

Если вы используете элемент управления типа DataGrid, я бы проверилдокументация для того, что вы ищете, может уже быть предоставлена.

В противном случае я бы создал StackPanel для хранения вашего сообщения «Нет результатов поиска» и ItemsControl, который содержит ваши фактические результаты поиска и использования.Данные стиля запускают переключение видимости в зависимости от того, есть результаты или нет.

Вероятно, XAML неверен, потому что я пишу свободно, но он должен проиллюстрировать основную идею:

<Grid x:Name="searchResultsGrid">
   <Grid.RowDefinitions>
      // Header row definition here
      // Results row definition here
   </Grid.RowDefinitions>

   <Grid x:Name="headers" Grid.Row="0">Headers would go here</Grid>
   <Grid x:Name="results" Grid.Row="1">
      <StackPanel x:Name="noResults">
         <StackPanel.Style>
            <Style TargetType="StackPanel">
               <Setter Property="Visibility" Value="Collapsed" />
               <Style.Triggers>
                  <DataTrigger Binding="{Binding SearchResultsFound}" Value="False">
                     <Setter Property="Visibility" Value="Visible" />
                  </DataTrigger>
                  <DataTrigger Binding="{Binding SearchResultsFound}" Value="True">
                     <Setter Property="Visibility" Value="Collapsed" />
                  </DataTrigger>
               </Style.Triggers>
            </Style>
         </StackPanel.Style>
      </StackPanel>
      <ItemsControl x:Name="resultsControl" ItemsSource="{Binding SearchResults}">
     <ItemsControl.Style>
            <Style TargetType="ItemsControl">
               <Setter Property="Visibility" Value="Visible" />
               <Style.Triggers>
                  <DataTrigger Binding="{Binding SearchResultsFound}" Value="False">
                     <Setter Property="Visibility" Value="Collapsed" />
                  </DataTrigger>
                  <DataTrigger Binding="{Binding SearchResultsFound}" Value="True">
                     <Setter Property="Visibility" Value="Visible" />
                  </DataTrigger>
               </Style.Triggers>
    </Style>
     </ItemsControl.Style>
      </ItemsControl>
   </Grid>
</Grid>
0 голосов
/ 25 июня 2010

Используйте тот же подход, что и вопрос, который вы упоминаете, но сохраняйте список видимым.

<ContentPresenter Content="{Binding}">
    <ContentPresenter.ContentTemplate>
        <DataTemplate>
            <Grid>
                <ListView Name="list" ItemsSource="{Binding MyList}"/>
                <TextBlock Name="empty" Text="No items found" Visibility="Collapsed"/>
            </Grid>
            <DataTemplate.Triggers>
                <DataTrigger Binding="{Binding MyList.Count}" Value="0">
                    <Setter TargetName="empty" Property="Visibility" Value="Visible"/>
                </DataTrigger>                        
            </DataTemplate.Triggers>
        </DataTemplate>
    </ContentPresenter.ContentTemplate>
</ContentPresenter>

Слишком просто? Я что-то упустил?

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