Windows Universal App(XAML):所选高级视图上的ListviewItem(仅在选择ListViewItemsis时显示按钮)

时间:2015-07-27 16:57:24

标签: c# xaml listview win-universal-app windows-10

我正在使用我的第一个通用应用程序(我是初学者)。

在应用程序中我有几个地方,我想选择ListViewItem,并通过某个按钮删除/编辑(http://i.imgur.com/ZRkIQHm.png)它。我不是设计师,所以我想选择一些简单,美观的解决方案来展示这些按钮。

我受到了Windows 10的启发,很少有地方可以点击ListViewItem,这个选中的项目会显示一些按钮(打印机设置,WiFi连接,蓝牙连接) - 就像这张图片一样 - http://i.imgur.com/WjerA5F.png

我花了很多时间用谷歌搜索,尝试,现在我不知道该怎么做。我可能最接近在ListViewItemContainer中使用VisualStateManager。

这是代码示例(在c#中,某些ObservableCollection<>填充了ItemsSource):

<ListView Name="dbList" Grid.Column="0" SelectionChanged="dbList_SelectionChanged">
                <ListView.ItemTemplate>
                    <DataTemplate>
                        <StackPanel Orientation="Horizontal" Name="XXX">
                            <TextBlock Text="{Binding}"/>
                            <Button Name="removeDatabaseButton" Click="removeDatabaseButton_Click" Content="Remove" Tag="{Binding}"/>
                        </StackPanel>
                    </DataTemplate>
                </ListView.ItemTemplate>
            </ListView>

谢谢!

PS:对不起我的英文:)

1 个答案:

答案 0 :(得分:0)

答案很复杂:

您需要修改列表Type Class,它应该实现具有Visible属性的INotifyPropertyChanged接口。

 private Visibility _visible;

    public Visibility Visible //Binding to this in Listbox - Button Visibility
    {
        get { return _visible; }
        set { _visible = value; } //Call OnPropertyChanged method
    }

现在创建一个listview_itemclick()方法。调用listview.selectedindex并将listitem属性“Visible”的可见性设置为Visible - 将触发PropertyChanged事件,并通知ui此特定按钮的可见性应更改。

帮助链接:

INotifyPropertyChangedInterface

Playlist to MVVM tutorials - containing INotifyPropertyChanged