у меня ListView с элементом связывания, который выглядит следующим образом:Как добавить пользовательский элемент управления ListView с коллекцией связыванием
<ListView x:Name="DetailsAZList" ItemsSource="{Binding AZEntries.AZEntries, Mode=OneWay}" >
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="LightGray" BorderBrush="DimGray" BorderThickness="2" CornerRadius="0" Margin="0 2 0 10">
<Grid MinHeight="140" HorizontalAlignment="Stretch">
<StackPanel Margin="10 0" Orientation="Vertical">
<TextBlock Text="{Binding ToDoBezeichnung, Mode=OneWay}"/>
<!--UserName Unter umständen auch anzeigen, falls Arbeitszeiten anderer User mit aufgeführt werden-->
<!--<TextBlock Text="{Binding UserName, Mode=OneWay}"/>-->
<TextBlock Text="{Binding start, Mode=OneWay}"/>
<TextBlock Text="{Binding finished, Mode=OneWay}"/>
<TextBlock Text="{Binding Kostenpflichtig, Mode=OneWay}"/>
<controls:WrapPanel Orientation="Horizontal" BlockSize="40">
<!-- Example from: stackoverflow.com/questions/28223693/how-to-bind-buttons-in-listview-datatemplate-to-commands-in-viewmodel-mvvmligh -->
<Button Command="{Binding ElementName=DetailsAZList, Path=DataContext.PlayCommand}"
CommandParameter="{Binding}"
Margin="0 0 10 0">
<SymbolIcon Symbol="Play"/>
</Button>
<Button Command="{Binding ElementName=DetailsAZList, Path=DataContext.PauseCommand}"
CommandParameter="{Binding}"
Margin="0 0 10 0">
<SymbolIcon Symbol="Pause"/>
</Button>
<Button Command="{Binding ElementName=DetailsAZList, Path=DataContext.StopCommand}"
CommandParameter="{Binding}"
Margin="0 0 10 0">
<SymbolIcon Symbol="Stop"/>
</Button>
<Button Command="{Binding ElementName=DetailsAZList, Path=DataContext.EditCommand}"
CommandParameter="{Binding}"
Margin="0 0 10 0">
<SymbolIcon Symbol="Edit"/>
</Button>
<Button Command="{Binding ElementName=DetailsAZList, Path=DataContext.DeleteCommand}"
CommandParameter="{Binding}" >
<SymbolIcon Symbol="Delete"/>
</Button>
</controls:WrapPanel>
</StackPanel>
</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="0 2 0 0"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
, что я хотел бы сделать, это добавление самый верхний элемент, который либо несвязан, либо не использует Datatemplate, sth. как это:
<ListView x:Name="DetailsAZList" ItemsSource="{Binding AZEntries.AZEntries, Mode=OneWay}" >
<!-- Here comes the relevant Item -->
<ListViewItem x:Name="TopmostUnboundItem">
<Grid HorizontalAlignment="Strech" Background="LightGray">
<TextBox Text="Add Entry"/>
</Grid>
</ListViewItem>
<!-- Thats it -->
<ListView.ItemTemplate>
<DataTemplate>
<Border Background="LightGray" BorderBrush="DimGray" BorderThickness="2" CornerRadius="0" Margin="0 2 0 10">
<Grid>...</Grid>
</Border>
</DataTemplate>
</ListView.ItemTemplate>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
<Setter Property="Margin" Value="0 2 0 0"/>
</Style>
</ListView.ItemContainerStyle>
</ListView>
ли это как-то можно, без необходимости вносить изменения в мою указанную коллекцию в ObservableCollection для добавления элемента, а затем с помощью TemplateSelector? Я надеялся избежать этого, так как у меня такое чувство, что это будет немного излишним только для одного предмета.
Я должен был сказать, что мне нужно визуальное и логическое поведение кликов из ListViewItem. Поскольку Listview.Header не поддерживает это изначально, это не вариант. На данный момент мое обходное решение делает это с помощью настраиваемой кнопки I, расположенной над списком ListView, на данный момент это нормально. Я могу разместить кнопку внутри заголовка. –
Вы можете поместить ListViewItem в шаблон заголовка. У него будет все, что вы хотите от ListViewItem. – thang2410199
Вы любезны, не так ли? –