2016-04-08 8 views
0

を結合コレクションとリストビューにカスタム項目を追加します:、私が何をしたいのですがどのようなどのように私はこのように見えるアイテム結合を持つ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> 

項目を追加し、TemplateSelectorを使用するためのObservableCollectionに自分の指定したコレクションを変更することなく、この何とか可能ですか?これを避けることを望んでいました。なぜなら、これは、これが1つのアイテムに対して過度の過労であると感じていたからです。

答えて

1

Headerを使用し、内容をListView.HeaderTemplateに入力してください。あなたは1つのアイテムをオンタップに入れたいので、あなたのコレクションを変更する必要はありません。

+0

私はListViewItemから視覚的かつ論理的なクリックの動作が必要であると言わざるを得ないでしょう。 Listview.Headerはこれをネイティブにサポートしていないので、オプションではありません。今のところ、私の回避策はListViewの上に置かれたカスタムボタンでこれを行うことです。これは現時点では問題ありません。私はヘッダーの内側にボタンを置くかもしれない。 –

+1

ListViewItemをヘッダテンプレート内に配置できます。それはListViewItemからあなたが望むものすべてを持っています – thang2410199

+0

あなたはまあまあです、ありますか? –

関連する問題