2016-05-16 11 views
-1

私には2つの質問があります。拡大リストビューとクリック可能な画像

1:私はListViewですが、OnSelectedItemは属性を拡張してより多くの属性を表示します。これは可能ですか?どうやって?

Q2 [私はObservableCollectionの属性を持っている]:私は(行動チャット)のViewModelを変更するビュー内のクリック可能な画像を、載せていきたいと思います。これは可能ですか?どうやって?

のListView

<ListView x:Name="dataGrid" ItemsSource="{Binding Friends}" Height="314" BorderThickness="0" SelectedItem="{Binding SelectedItemFriends}"> 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal"> 
        <Image Source="Resources\Images\ic_status.png" Height="24" Width="18"/> 
        <StackPanel Margin="5" Orientation="Vertical"> 
         <TextBlock FontWeight="Bold" Text="{Binding name}"/> 
         <TextBlock Text="{Binding lastLocation}"/> 
         <TextBlock Text="{Binding timestamp}"/> 
        </StackPanel> 
       </StackPanel> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
+0

、それはタグが – Tseng

答えて

1

A1:のDataTemplateで、あなたは拡張属性は、このようなスタックパネルとして表示され、コンテナにそれらを配置したいと思いますどのように作成します。

次に、IsSelectedプロパティを使用してDataTriggerを使用して、スタックパネルコンテナの可視性を必要に応じて表示および縮小から変更します。

A2:コンテンツソースが画像に設定されたボタンを使用するのが最も簡単な方法は、クリックイベント/コマンドバインディングを再生するためです。

編集:私はこのコードを実行しているし、それは私の作品

<ListView x:Name="dataGrid" Height="314" BorderThickness="0" SelectedItem="{Binding SelectedItemFriends}" ItemsSource="{Binding Friends}" > 
     <ListView.ItemTemplate> 
      <DataTemplate> 
       <StackPanel Orientation="Horizontal" > 
        <Image Source="Resources\Images\ic_status.jpg" Height="24" Width="18"/> 
        <StackPanel Margin="5" Orientation="Vertical"> 
         <TextBlock FontWeight="Bold" Text="{Binding Name}"/> 
         <StackPanel x:Name="AdditionItems" Orientation="Vertical" Visibility="Collapsed"> 
          <TextBlock Text="{Binding LastLocation}"/> 
          <TextBlock Text="{Binding TimeStamp}"/> 
         </StackPanel> 
        </StackPanel> 
       </StackPanel> 
       <DataTemplate.Triggers> 
        <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListViewItem}}, Path=IsSelected}" Value="true"> 
         <Setter TargetName="AdditionItems" Property="Visibility" Value="Visible"/> 
        </DataTrigger> 
       </DataTemplate.Triggers> 
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 

、正しい軌道に乗ってあなたを置くのに十分でなければならない:最初の答えの例のようになります。注目すべき重要な点は、トリガがListViewItemにアタッチされ、IsSelectedプロパティがtrueになったときにトリガされ、「Additional Items」というStackPanelの可視性が折りたたまれて可視に変更されることです。

My Example Window

+0

こんにちはベンのためにあるものだ、質問のタイトルにあなたの答えをありがとうタグを入れないでください。 A1:わかりやすい小さな例を書くことができますか? A2:良いアイデア、私はあなたが言っている方法で実装すると思う:D – Antoine

+0

例を追加 –

+0

こんにちはアントワーヌ、答えは受け入れられましたか?もしそうなら、それを評価してください –

関連する問題