2016-04-09 19 views
0

ContentPresenter'da seçili bir liste görünümü öğesini görüntülemeye çalışıyorum.İçerik çubuğundaki seçili Listeyi görüntüle Liste

ListView, Player s ViewModel'den alınmıştır. PlayerViewModel sunan öğeler.

Şimdi seçilen PlayerViewModel öğesini ContentView ürününde ListView dışında görüntülemek istiyorum. Tasarım görünümünde sadece İçerik bağlantılı tip gösterilir. Gibi: PlayersViewModel.CurrentPlayer.

ContentPresenter'ı ListView.ItemTemplate ile aynı şekilde nasıl çalıştırabilirim?

Şimdiden teşekkürler.

<ListView ItemsSource="{x:Bind PlayersViewModel.Players}" SelectedIndex="{x:Bind PlayersViewModel.Index}" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">    
     <ListView.ItemTemplate> 
      <DataTemplate x:DataType="viewModels:PlayerViewModel"> 
       <Viewbox> 
        <StackPanel BorderBrush="Black" BorderThickness="1"> 
         <TextBlock Text="{x:Bind Name}" /> 
         <TextBlock Text="{x:Bind Score, Mode=TwoWay}" /> 
        </StackPanel> 
       </Viewbox>      
      </DataTemplate> 
     </ListView.ItemTemplate> 
    </ListView> 
    <ContentPresenter Grid.Row="0" Grid.Column="1" Content="{x:Bind PlayersViewModel.CurrentPlayer}"> 
     <ContentPresenter.Resources> 
      <DataTemplate x:Key="dataTemplateCurrentPlayer" x:DataType="viewModels:PlayerViewModel"> 
       <StackPanel BorderBrush="Black" BorderThickness="1"> 
        <TextBlock Text="{x:Bind Name}" /> 
        <TextBlock Text="{x:Bind Score, Mode=TwoWay}" /> 
       </StackPanel> 
      </DataTemplate> 
     </ContentPresenter.Resources>    
    </ContentPresenter> 
+0

Neden Cont entPresenter? Herhangi bir nedenle? – Archana

+0

PlayersViewModel'da CurrentPlayer mülkünüz var mı? Koştuğunda bağlayıcı bir istisna mı alıyorsun? – Archana

+0

Evet CurrentPlayer özelliği, PlayersViewModel konumunda. Bağlama istisnası yok. ContentPresenter'da seçilen öğeyle ilgili daha ayrıntılı bilgi göstermek istiyorum. Bunu farklı bir kontrolle yapabilirsem iyi olur. – Rene

cevap

0
<UserControl x:Class="App1.MyUserControl1" 
      xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
      xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
      xmlns:local="using:App1" 
      xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
      xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
      mc:Ignorable="d" 
      d:DesignHeight="300" 
      d:DesignWidth="400"> 

    <UserControl.Resources> 
    <DataTemplate x:DataType="viewModels:PlayerViewModel" 
        x:Key="PlayerTemplate"> 
     <Viewbox> 
     <StackPanel BorderBrush="Black" 
        BorderThickness="1"> 
      <TextBlock Text="{x:Bind Name}" /> 
      <TextBlock Text="{x:Bind Score, Mode=TwoWay}" /> 
     </StackPanel> 
     </Viewbox> 
    </DataTemplate> 
    </UserControl.Resources> 
    <Grid> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="0.5*" /> 
     <ColumnDefinition Width="0.5*" /> 
    </Grid.ColumnDefinitions> 
    <ListView ItemsSource="{x:Bind PlayersViewModel.Players}" 
       SelectedIndex="{x:Bind PlayersViewModel.Index}" 
       ItemTemplate="{StaticResource PlayerTemplate}" /> 

    <ContentControl Grid.Column="1" 
        Content="{x:Bind PlayersViewModel.CurrentPlayer}" 
        ContentTemplate="{StaticResource PlayerTemplate}" /> 
    </Grid> 
</UserControl> 
0

Sen ..

<ListView ItemsSource="{x:Bind PlayersViewModel.Players}" SelectedIndex="{x:Bind PlayersViewModel.Index}" Grid.Row="0" Grid.Column="0" Grid.RowSpan="2">    
     <ListView.ItemTemplate> 
      <DataTemplate x:DataType="viewModels:PlayerViewModel"> 
       <Viewbox> 
        <StackPanel BorderBrush="Black" BorderThickness="1"> 
         <TextBlock Text="{x:Bind Name}" /> 
         <TextBlock Text="{x:Bind Score, Mode=TwoWay}" /> 
        </StackPanel> 
       </Viewbox>      
      </DataTemplate> 
     </ListView.ItemTemplate> 
<ListView.FooterTemplate> 

     <DataTemplatex:DataType="viewModels:PlayerViewModel"> 
      <StackPanel BorderBrush="Black" BorderThickness="1"> 
       <TextBlock Text="{x:Bind PlayersViewModel.CurrentPlayer.Name}" /> 
       <TextBlock Text="{x:Bind PlayersViewModel.CurrentPlayer.Score, Mode=TwoWay}" /> 
      </StackPanel> 
     </DataTemplate> 
</ListView.FooterTemplate> 
</ListView> 

Veya diğer yolu bu işleri sadece stackpanel

<StackPanel BorderBrush="Black" BorderThickness="1"> 
        <TextBlock Text="{x:Bind PlayersViewModel.CurrentPlayer.Name}" /> 
        <TextBlock Text="{x:Bind PlayersViewModel.CurrentPlayer.Score, Mode=TwoWay}" /> 
       </StackPanel> 

Umut kullanabileceği başka seçilen öğenin ayrıntılı bilgileri göstermek için ListView Altbilgi Şablonu kullanabilirsiniz

İlgili konular