C#/WPF: Идея, как отобразить последнюю строку ListView отдельно?

вещи попробовать:

  • используют z-индекс для помещения его позади некоторого другого элемента
  • перемещение он от экрана абсолютным расположением
  • visbility: скрытый
  • делают содержание "невидимым" путем установки предпосылок к основному цвету (работы только для текста)
  • непрозрачность: 0

, но реальный вопрос: почему?

6
задан Cœur 28 December 2016 в 16:51
поделиться

3 ответа

Это пример того, как получить список с областью итогов в конце. Ширина столбца привязана между каждым столбцом и его общей

 <Window x:Class="WpfApplication2.Window1"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:sys="clr-namespace:System;assembly=mscorlib"
        Title="Window1"
        x:Name="ctl"
        Height="300"
        Width="300"> 
  <Window.Resources>

    <GridViewColumnCollection x:Key="gvcc">
      <GridViewColumn Width="{Binding Path=ActualWidth, ElementName=col1}"
                      Header="Date" />
      <GridViewColumn  Width="{Binding Path=ActualWidth, ElementName=col2}"
                       Header="Day Of Week"
                       DisplayMemberBinding="{Binding DayOfWeek}" />
      <GridViewColumn  Width="{Binding Path=ActualWidth, ElementName=col3}"
                       Header="Year"
                       DisplayMemberBinding="{Binding Year}" />

    </GridViewColumnCollection>
  </Window.Resources>

  <Grid>
    <DockPanel HorizontalAlignment="Stretch"
               VerticalAlignment="Stretch"
               LastChildFill="True">


      <GridViewRowPresenter Name="listview_total"
                            DockPanel.Dock="Bottom" 
                            Margin="0,5,0,5"
                            Columns="{StaticResource gvcc}">
        <GridViewRowPresenter.Content>
          <sys:DateTime>2005/2/1</sys:DateTime>
        </GridViewRowPresenter.Content>
      </GridViewRowPresenter>



      <ListView x:Name="listview_rows" 
                SelectionMode="Single"
                DockPanel.Dock="Top"
                ScrollViewer.HorizontalScrollBarVisibility="Disabled">
        <ListView.View>
          <GridView>
            <GridViewColumn x:Name="col1"                            
                            Header="Date" />
            <GridViewColumn x:Name="col2"                            
                            Header="Day Of Week"
                            DisplayMemberBinding="{Binding DayOfWeek}" />
            <GridViewColumn x:Name="col3"                            
                            Header="Year"
                            DisplayMemberBinding="{Binding Year}" />
          </GridView>
        </ListView.View>

        <sys:DateTime>1/2/3</sys:DateTime>
        <sys:DateTime>4/5/6</sys:DateTime>
        <sys:DateTime>7/8/9</sys:DateTime>
        <sys:DateTime>10/11/12</sys:DateTime>
        <sys:DateTime>1/2/3</sys:DateTime>
        <sys:DateTime>4/5/6</sys:DateTime>
        <sys:DateTime>7/8/9</sys:DateTime>
        <sys:DateTime>10/11/12</sys:DateTime>
        <sys:DateTime>1/2/3</sys:DateTime>
        <sys:DateTime>4/5/6</sys:DateTime>
        <sys:DateTime>7/8/9</sys:DateTime>
        <sys:DateTime>10/11/12</sys:DateTime>
        <sys:DateTime>1/2/3</sys:DateTime>
        <sys:DateTime>4/5/6</sys:DateTime>
        <sys:DateTime>7/8/9</sys:DateTime>
        <sys:DateTime>10/11/12</sys:DateTime>
      </ListView>

    </DockPanel>
  </Grid>
</Window>
6
ответ дан 10 December 2019 в 00:42
поделиться

Похоже, что вам нужно второе представление списка ниже первого, с каким-то способом синхронизировать размеры столбцов. Есть ли событие, которое вы можете подключить, чтобы сообщить, что пользователь изменил размер определенного столбца? (Я не совсем человек WPF, но WinForms предлагает события ColumnSizeChanged и ColumnSizeChanging.) Это немного грубо, но если вы по существу не откатываете свой собственный настраиваемый элемент управления списком, я не знаю, собираетесь ли вы добиться большего .

0
ответ дан 10 December 2019 в 00:42
поделиться

Если источником данных является StaticRes , вы можете использовать составную коллекцию. Я действительно хочу, чтобы это работало где-нибудь еще. Грустно, правда. В любом случае это действительно хорошо, если вы можете им пользоваться.

<ListView>
   <ListView.ItemsSource>
      <CompositeCollection>
           <CollectionContainer Collection="{StaticResource MyCollection} />
           <ListViewItem>Last Item</ListViewItem>
      </CompositeCollection>
   </ListView.ItemsSource>
</ListView>

Наслаждайтесь!

2
ответ дан 10 December 2019 в 00:42
поделиться
Другие вопросы по тегам:

Похожие вопросы: