버튼이 두 개 있습니다. 버튼 A & 버튼 B. 처음에는 모두 숨겨져 있습니다. 데이터는 Observable Collection OCollection에서 가져옵니다.XAML, WP 8.1에서 DataTrigger Behavior를 사용하여 두 개의 버튼의 가시성을 전환하는 방법은 무엇입니까?
이것은 내가 acheive하려고 무엇을 :
1) 처음 두 버튼이 숨겨져 있습니다. 버튼 A가 가시화되어야한다) 모든 목록보기 항목을 클릭 첫 번째 클릭 (에
2) (완료).
3) 버튼 A가 볼 유지되어있는 것 이외의 다른리스트 뷰 항목) 클릭 클릭 (의 나머지 는, 버튼 B가 가시화되어야한다 (완료). 그리고 버튼 A의 가시성은 다시 축소로 변경되어서는 안됩니다.
NB : 각 목록보기 항목에는 하나의 단추 (단추 A 또는 단추 B) 만 있어야합니다.
OCollection은 ListView의 ItemSource로 설정됩니다. 각 ListView Item은 기본 이미지가 포함 된 표입니다.
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>
내가 버튼을 내용으로 그리드의 태그를 비교하고, 3 acheive합니다. 논리가 잘못되어 작동하지 않습니다. 자, 코드를 사용하지 않고 어떻게 이것을 달성 할 수 있을까요? 나는 MVVM 패턴을 따르고 있으므로 코드는 뒤에있다.
내가 초보자이기 때문에 샘플이 좋을 것입니다.
등급 :
public class dumyClass
{
public string dumyString { get; set; }
}
@ w-d 내 게시물에 코드를 추가하고 시도해보고 어떻게 진행되는지 알려주세요. – RenDishen