如何将数据网格添加到我的tabitem以表示lsitview

时间:2017-10-13 17:57:07

标签: c# .net wpf xaml datagrid

我有一个带有tabcontrol的网格,它看起来像这样。enter image description here

我想在我的某个标签中添加一个数据网格,以便在我的“服务器设置”标签中看起来像这样 enter image description here

我无法在其中使用listviewitem,因为我无法双击行以使用listview更改值。 (在这个问题中谈到这个) How do I change my listview item value when I double click it?

那么如何在我的标签页面中添加gridview?

XAML TabControl

<Grid>
    <TabControl>
        <TabItem Header="General">
            <Grid>
                <GroupBox Header="Settings" HorizontalAlignment="Left" Height="145" Margin="2,4,0,0" VerticalAlignment="Top" Width="323" Style="{DynamicResource GroupBoxStyle1}"/>
                <CheckBox x:Name="cbThing" Content="Play Sound On Login" Click="cbThing_Checked" Margin="18,33,518,208"/>
                <CheckBox Content="Play Sound On Logout" Margin="18,52,548,196"/>
            </Grid>
        </TabItem>

        <TabItem Header="Server Settings"/>

        <TabItem Header="Details" />

    </TabControl>
</Grid>

XAML DataGrid

<Grid>
    <DataGrid Name="dgItems" Margin="0,0,0,35">
        <DataGrid.Columns>
            <!--<DataGridTextColumn Header="Property" Binding="{Binding Property}" />
            <DataGridTextColumn Header="Value" Binding="{Binding Value}" />-->
        </DataGrid.Columns>
    </DataGrid>

</Grid>

我试过这样做

    <TabItem Header="Server Settings"/>
    <DataGrid Name="dgItems" Margin="0,0,0,35">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Property" Binding="{Binding Property}" />
            <DataGridTextColumn Header="Value" Binding="{Binding Value}" />
        </DataGrid.Columns>
    </DataGrid>

这导致了这个......

enter image description here

1 个答案:

答案 0 :(得分:2)

您的XML标记需要将其内容放在其中,而不仅仅是附近的某个地方。

此标记没有关闭标记,因此它没有内容。看看它如何以/>结尾?没有贴心标签,没有内容。

<TabItem Header="Server Settings"/>

此内容包含以下内容:开放代码仅以>结尾,并且有一个匹配的关闭代码</TabItem>Grid标记内的TabItem标记也是如此。这是直接从您的问题复制。我在DataGrid XAML中看到了相同的打开/关闭标记模式。你写过这个,还是做过其他人的?

<TabItem Header="General">
    <Grid>
        <GroupBox Header="Settings" HorizontalAlignment="Left" Height="145" Margin="2,4,0,0" VerticalAlignment="Top" Width="323" Style="{DynamicResource GroupBoxStyle1}"/>
        <CheckBox x:Name="cbThing" Content="Play Sound On Login" Click="cbThing_Checked" Margin="18,33,518,208"/>
        <CheckBox Content="Play Sound On Logout" Margin="18,52,548,196"/>
    </Grid>
</TabItem>

所以这样做:

<TabItem Header="Server Settings">
    <DataGrid Name="dgItems" Margin="0,0,0,35">
        <DataGrid.Columns>
            <DataGridTextColumn Header="Property" Binding="{Binding Property}" />
            <DataGridTextColumn Header="Value" Binding="{Binding Value}" />
        </DataGrid.Columns>
    </DataGrid>
</TabItem>