Wpf 需要帮助向powershell中的listview添加复选框吗

Wpf 需要帮助向powershell中的listview添加复选框吗,wpf,listview,powershell,Wpf,Listview,Powershell,我目前正在制作一个GUI,用于检索SQL数据库并进行备份。我的ListView将填充数据库,但我希望在每个数据库旁边显示复选框。这将允许用户仅备份所需的数据库 在VisualStudio中,我在我的listview中添加了4个复选框(只是为了玩游戏并了解如何使它们工作)。我不确定如何让powershell在列表数据旁边显示复选框,因为默认情况下我什么也看不到 这就是我的WPF代码的样子 <Window x:Class="SQLGUI.MainWindow" xmlns="h

我目前正在制作一个GUI,用于检索SQL数据库并进行备份。我的ListView将填充数据库,但我希望在每个数据库旁边显示复选框。这将允许用户仅备份所需的数据库

在VisualStudio中,我在我的listview中添加了4个复选框(只是为了玩游戏并了解如何使它们工作)。我不确定如何让powershell在列表数据旁边显示复选框,因为默认情况下我什么也看不到

这就是我的WPF代码的样子

<Window x:Class="SQLGUI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SQLGUI"
        mc:Ignorable="d"
        Title="MainWindow" Height="547.722" Width="861.104" Background="#FF4F4A4A">
    <Grid>
        <ComboBox x:Name="instance" HorizontalAlignment="Left" Margin="10,76,0,0" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="selectdatabase" Content="Load Database" HorizontalAlignment="Left" Margin="135,76,0,0" VerticalAlignment="Top" Width="92"/>
        <ListView x:Name="listView" HorizontalAlignment="Left" Height="350" Margin="10,103,0,0" VerticalAlignment="Top" Width="812">
            <ListView.View>
                <GridView>
                    <GridViewColumn Header="Database Name" DisplayMemberBinding ="{Binding 'Database Name'}" Width="200"/>
                    <GridViewColumn Header="Created" DisplayMemberBinding ="{Binding 'Created'}" Width="200"/>
                    <GridViewColumn Header="Last Backup" DisplayMemberBinding ="{Binding 'Last Backup'}" Width="200"/>
                    <GridViewColumn Header="Size(KB)" DisplayMemberBinding ="{Binding 'Size(KB)'}" Width="200"/>
                </GridView>
            </ListView.View>
            <CheckBox x:Name="box1" Content="Test"/>
            <CheckBox x:Name="box2" Content="Test 2"/>
            <CheckBox x:Name="box3" Content="Test 3"/>
            <CheckBox x:Name="box4" Content="Test 4"/>
        </ListView>
        <Button x:Name="backup" Content="Backup" HorizontalAlignment="Left" Margin="130,482,0,0" VerticalAlignment="Top" Width="75"/>

    </Grid>
</Window>

我认为您需要将复选框属性添加到ListView元素:

<ListView x:Name="listView" CheckBoxes="True" HorizontalAlignment="Left" Height="350" Margin="10,103,0,0" VerticalAlignment="Top" Width="812">

在搜索堆栈溢出后,我找到了解决方案

似乎需要使用DataTemplate添加一个新的GridView列。添加下面的代码解决了这个问题

<GridViewColumn>
   <GridViewColumn.CellTemplate>
     <DataTemplate>
       <CheckBox />
    </DataTemplate>
   </GridViewColumn.CellTemplate>
</GridViewColumn>

因此,最终的GUI代码看起来就是这样

<Window x:Class="SQLGUI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SQLGUI"
        mc:Ignorable="d"
        Title="MainWindow" Height="547.722" Width="861.104" Background="#FF4F4A4A">
    <Grid>
        <ComboBox x:Name="instance" HorizontalAlignment="Left" Margin="10,76,0,0" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="selectdatabase" Content="Load Database" HorizontalAlignment="Left" Margin="135,76,0,0" VerticalAlignment="Top" Width="92"/>
        <ListView x:Name="listView" HorizontalAlignment="Left" Height="350" Margin="10,103,0,0" VerticalAlignment="Top" Width="834">
            <ListView.View>
                <GridView>
                    <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="Database Name" DisplayMemberBinding ="{Binding 'Database Name'}" Width="300"/>
                    <GridViewColumn Header="Created" DisplayMemberBinding ="{Binding 'Created'}" Width="200"/>
                    <GridViewColumn Header="Last Backup" DisplayMemberBinding ="{Binding 'Last Backup'}" Width="200"/>
                    <GridViewColumn Header="Size" DisplayMemberBinding ="{Binding 'Size(MB)'}" Width="150"/>
                </GridView>
            </ListView.View>
        </ListView>
        <Button x:Name="backup" Content="Backup" HorizontalAlignment="Left" Margin="130,482,0,0" VerticalAlignment="Top" Width="75"/>

    </Grid>
</Window>


这是什么我都不知道。。。你在编码。。。wpf用户界面。。。动力地狱?呵呵?我感到头晕。我需要躺下。你能解释一下powershell在问什么吗?这可能有助于缓解头晕……哇。一个真正的问题--您在powershell中使用WPF是因为您正在开发powershell应用程序并使用WPF进行复杂输入,还是您正在编写WPF应用程序并认为通过powershell进行编码是正常的?@我是否会尝试自动备份SQL数据库,我之所以使用powershell是因为在过去,使用预编译的.NET或C#应用程序带来了麻烦,无法在运行中修复问题。我使用powershell的原因很简单,因为它可以在运行中修复和修改,我使用WPF是为了确保最终用户最大程度的简化。--尽管这对我来说是一个重大的复杂代价:P“我正在尝试自动备份SQL数据库”-为什么?SQL有用于创建和管理备份的内置工具。我可以看到这一点@比尔·斯图尔特可能有什么事。祝你好运不幸的是,这不起作用。添加该参数会导致GUI不加载。
<Window x:Class="SQLGUI.MainWindow"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:local="clr-namespace:SQLGUI"
        mc:Ignorable="d"
        Title="MainWindow" Height="547.722" Width="861.104" Background="#FF4F4A4A">
    <Grid>
        <ComboBox x:Name="instance" HorizontalAlignment="Left" Margin="10,76,0,0" VerticalAlignment="Top" Width="120"/>
        <Button x:Name="selectdatabase" Content="Load Database" HorizontalAlignment="Left" Margin="135,76,0,0" VerticalAlignment="Top" Width="92"/>
        <ListView x:Name="listView" HorizontalAlignment="Left" Height="350" Margin="10,103,0,0" VerticalAlignment="Top" Width="834">
            <ListView.View>
                <GridView>
                    <GridViewColumn>
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <CheckBox />
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>
                    <GridViewColumn Header="Database Name" DisplayMemberBinding ="{Binding 'Database Name'}" Width="300"/>
                    <GridViewColumn Header="Created" DisplayMemberBinding ="{Binding 'Created'}" Width="200"/>
                    <GridViewColumn Header="Last Backup" DisplayMemberBinding ="{Binding 'Last Backup'}" Width="200"/>
                    <GridViewColumn Header="Size" DisplayMemberBinding ="{Binding 'Size(MB)'}" Width="150"/>
                </GridView>
            </ListView.View>
        </ListView>
        <Button x:Name="backup" Content="Backup" HorizontalAlignment="Left" Margin="130,482,0,0" VerticalAlignment="Top" Width="75"/>

    </Grid>
</Window>