Ho due pulsanti: pulsante A & Pulsante B. Entrambi vengono nascosti inizialmente. I dati vengono recuperati da una raccolta osservabile OCOLLection.Come attivare o disattivare la visibilità di due pulsanti utilizzando DataTrigger Behavior in XAML, WP 8.1?
Questo è quello che sto cercando di acheive:
1) Inizialmente, i due tasti sono nascosti. (Fatto)
2) Al primo scatto (cliccando qualsiasi visualizzazione elemento della lista), Pulsante A deve essere reso visibile. (Done)
3) Sul resto dei clic (clic su qualsiasi altro elemento ListView, diverso da quello in cui il tasto A è stato tenuto visibile), il tasto B da rendere visibili. E la visibilità del pulsante A non dovrebbe tornare a Collapsed.
NB: Ogni voce di elenco deve contenere solo un pulsante (pulsante A o pulsante B).
OColection è impostato come ItemSource di un ListView. Ogni oggetto ListView è una griglia contenente un'immagine predefinita.
XAML:
<ListView Name="lv"
ItemsSource="{Binding OCollection}"
Background="Linen"
Grid.ColumnSpan="3">
<ListView.ItemTemplate>
<DataTemplate>
<Grid Background="LightGray" Name="buttonGrid" Tag="{Binding dumyString}">
<i:Interaction.Behaviors>
<ic:DataTriggerBehavior Binding="{Binding ElementName=lv, Path=SelectedValue.dumyString}" Value="{Binding dumyString}" ComparisonCondition="Equal">
<ic:ChangePropertyAction TargetObject="{Binding ElementName=ButtonA}" PropertyName="Visibility" Value="Visible" />
</ic:DataTriggerBehavior>
<ic:DataTriggerBehavior Binding="{Binding ElementName=lv, Path=SelectedValue.dumyString}" Value="{Binding dumyString}" ComparisonCondition="NotEqual">
<ic:ChangePropertyAction TargetObject="{Binding ElementName=ButtonA}" PropertyName="Visibility" Value="Collapsed" />
</ic:DataTriggerBehavior>
<ic:DataTriggerBehavior Binding="{Binding ElementName=lv, Path=buttonGrid.Tag}" Value="{Binding dumyString}" ComparisonCondition="Equal">
<ic:ChangePropertyAction TargetObject="{Binding ElementName=ButtonB}" PropertyName="Visibility" Value="Visible" />
</ic:DataTriggerBehavior>
</i:Interaction.Behaviors>
<Image Source="/Assets/Logo.png" />
<Button Name="ButtonA" Content="ButtonA" Background="Black" Visibility="Collapsed" />
<Button Name="ButtonB" Content="ButtonB" Background="Black" Visibility="Collapsed" />
</Grid>
</DataTemplate>
</ListView.ItemTemplate>
</ListView>
Per acheive 3, mi sto paragonando il tag della griglia con il contenuto tasto. Non funziona perché la logica è sbagliata. Bene, come si può ottenere ciò senza usare il codice. Sto seguendo lo schema MVVM, quindi adios to Code behind.
Un campione sarebbe bello perché sono solo un principiante.
Classe:
public class dumyClass
{
public string dumyString { get; set; }
}
@ w-d ho aggiunto del codice nel mio post, provalo e dimmi come va – RenDishen