【发布时间】:2014-03-14 08:04:30
【问题描述】:
我已经定义了自定义ListviewItemStyle。
在样式模板中有一个按钮
<Button x:Name="btnAbout" Grid.Column="1"
Style="{StaticResource GCAboutButton}"
Visibility="Collapsed"
Command="{Binding DataContext.AboutCommand, ElementName=List}"
CommandParameter="{Binding Item}">
</Button>
在VisualStateManagerVisibitity这个按钮变成Visible,在Selecetd状态下ListViewItem。
ListView 包含不同类型的项目,派生自基类,例如:
class Base; class Man: Base; class Woman:Base;
问题是:
button must be visible, when SelectedItem is Man, invisible, when selected item is Woman.
如何从代码中访问模板中定义的按钮。例如,来自ListView 的SelectionChanged 事件。
【问题讨论】:
-
您必须对
Visibility属性使用数据绑定。您可能需要定义一个转换器来执行此操作。 -
为男人和女人定义两个新的视觉状态。在这些 VisualStates 中更改按钮的可见性。从 SelectionChanged 事件中应用适当的 VisualState。
-
@VictoryJessie 视觉状态是 ViewElement 的一个参数。如何获取列表框的选定视图?我可以获取选定的绑定项目,但不能查看。
-
使用 GetTemplateChild(string childName) 方法从模板中获取按钮。 msdn.microsoft.com/en-us/library/…
-
@VictoryJessie 你误会了,如何获取 ListViewItem 的模板,即被选中?
标签: c# wpf xaml windows-store-apps