2016-06-14 6 views
0

Ich habe zwei Tasten in der DataTemplate meines Listview.ItemTemplate.Universal Windows App: Zwei Tasten innerhalb von ListViewItem

Ich habe kein Problem beim Zugriff auf jedes einzelne mit einem Click-Ereignis, aber wenn ich auf eine der Schaltflächen klicken möchte ich die Vordergrundfarbe der Schaltfläche anderen ändern. Wie bekomme ich die Instanz der anderen Schaltfläche (die nicht angeklickt wurde) im ListViewItem?

+1

Bitte geben Sie die Codes, die Sie bisher versucht haben. –

+0

Geladenes Ereignis für jede Schaltfläche und in einem privaten Feld speichern. – adminSoftDK

Antwort

1

Da Sie nur die Vordergrundfarbe der anderen Schaltfläche ändern möchten, wenn Sie auf eine der beiden Schaltflächen klicken, müssen Sie die Instanz der anderen Schaltfläche nicht abrufen. Die Verwendung von Behaviors SDK kann in diesem Szenario eine bessere Wahl sein.

Im Anschluss an die XAML-Code, den ich überprüft haben:

<Page 
x:Class="ListViewWithTwoButtonDemo.MainPage" 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:ListViewWithTwoButtonDemo" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:Interactivity="using:Microsoft.Xaml.Interactivity" xmlns:Interactions="using:Microsoft.Xaml.Interactions.Core" 
mc:Ignorable="d"> 

<ListView Header="Medications" x:Name="myList" Background="White" HorizontalAlignment="Left" Width="400"> 
    <ListView.ItemTemplate> 
     <DataTemplate> 
      <Grid Width="400"> 
       <Grid.ColumnDefinitions> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
        <ColumnDefinition Width="*" /> 
       </Grid.ColumnDefinitions> 
       <TextBlock x:Name="medName" Text="{Binding Path=MedName}" TextWrapping="Wrap" /> 
       <TextBlock Grid.Column="1" x:Name="whatFor" Text="{Binding Path=WhatFor}" TextWrapping="Wrap" /> 
       <!--Use Behaviors SDK here, and no code behind is needed --> 
       <Button Grid.Column="2" x:Name="btn1" Content="Button 1"> 
        <Interactivity:Interaction.Behaviors> 
         <Interactions:EventTriggerBehavior EventName="Click" SourceObject="{Binding ElementName=btn1}"> 
          <Interactions:ChangePropertyAction TargetObject="{Binding ElementName=btn2}" PropertyName="Foreground" Value="Green" /> 
         </Interactions:EventTriggerBehavior> 
        </Interactivity:Interaction.Behaviors> 
       </Button> 
       <!--Use Behaviors SDK here, and no code behind is needed --> 
       <Button Grid.Column="3" x:Name="btn2" Content="Button 2"> 
        <Interactivity:Interaction.Behaviors> 
         <Interactions:EventTriggerBehavior EventName="Click" SourceObject="{Binding ElementName=btn2}"> 
          <Interactions:ChangePropertyAction TargetObject="{Binding ElementName=btn1}" PropertyName="Foreground" Value="Green" /> 
         </Interactions:EventTriggerBehavior> 
        </Interactivity:Interaction.Behaviors> 
       </Button> 
      </Grid> 
     </DataTemplate> 
    </ListView.ItemTemplate> 
</ListView> 
</Page> 

Nach der Ausgabe wird: enter image description here

+0

Das ist perfekt und genau das, was ich brauchte. Danke für Ihre Hilfe. – thankyoukindly