当前位置: 首页 > 知识库问答 >
问题:

使用DataTemPülate创建可编辑的GridviewColumn

沈华皓
2023-03-14

我有一个通过ItemsSource属性绑定到ListView的可观察集合。我使用GridView来显示ListView中的项。通过将我的ViewModel中的“IsServiceMode”属性设置为“true”(DataContext为包含ListView的UserControl),我希望将GridViewColumn更改为使用TextBox而不是TextBlock。我将CellTemplates与ContentControl和DataTemplate一起使用,如下所述

<GridViewColumn Header="Position">
                        <GridViewColumn.CellTemplate>
                            <DataTemplate>
                                <ContentControl>
                                    <ContentControl.Style>
                                        <Style TargetType="{x:Type ContentControl}">
                                            <Style.Triggers>
                                                <DataTrigger Binding="{Binding DataContext.IsServiceMode, RelativeSource={RelativeSource AncestorType=UserControl}}" Value="False">
                                                    <Setter Property="ContentTemplate">
                                                        <Setter.Value>
                                                            <DataTemplate>
                                                                <TextBlock Text="{Binding Position, diag:PresentationTraceSources.TraceLevel=High}"/>
                                                            </DataTemplate>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                                <DataTrigger Binding="{Binding DataContext.IsServiceMode, RelativeSource={RelativeSource AncestorType=UserControl}}" Value="True">
                                                    <Setter Property="ContentTemplate">
                                                        <Setter.Value>
                                                            <DataTemplate>
                                                                <TextBox Text="{Binding Position}"/>
                                                            </DataTemplate>
                                                        </Setter.Value>
                                                    </Setter>
                                                </DataTrigger>
                                            </Style.Triggers>
                                        </Style>
                                    </ContentControl.Style>
                                </ContentControl>
                            </DataTemplate>
                        </GridViewColumn.CellTemplate>
                    </GridViewColumn>´´´


共有1个答案

施雅懿
2023-03-14
  • Datagrid附带编辑模式。IsReadOnly处于打开和关闭状态。
  • ItemSource在启用编辑模式时必须实现INotifyCollectionChanged。类似于ObservableCollection

演示

        <DataGrid 
            x:Name="DataGrid1" 
            ItemsSource="{Binding Path=ObservableCollection}"
            IsReadOnly="{Binding Path=IsServiceMode}" AutoGenerateColumns="False">
            <DataGrid.Columns>
                <DataGridTextColumn Header="Position" Binding="{Binding Path=Position,Mode=TwoWay}"/>
            </DataGrid.Columns>
        </DataGrid>
 类似资料:
  • 我看到的所有网站都可以在检查元素窗口的控制台中使用此功能进行编辑。我要禁用这个操作。我正在建立一个考试的结果表,我不想让其他人编辑(即使是本地的,使它看起来逼真) 如果这个布尔值更改为true,任何人都可以编辑网站。那么如何确保这种情况不会发生呢

  • 问题内容: 我真的是Python新手。我目前正在研究使用python创建HTML文件的任务。我了解如何将HTML文件读入python,然后进行编辑和保存。 上一部分的问题在于,它只是替换了整个HTML文件并将字符串放入write()中。如何编辑文件,同时保持其内容完整。我的意思是,写这样的东西,但在 体内标签 我需要自动在打开和关闭正文标签之间插入链接。 问题答案: 您可能想阅读Beautiful

  • 我正在使用PDF小丑(在C#中)生成一个PDF文件,包含图形(线,多边形和圆)在不同的层。现在我遇到了一个问题,我在互联网上搜索了几天,但找不到解决方案。 我有以下问题:如何确保PDFClown生成的PDF可以使用其他应用程序进行编辑/修改,例如Blue Beam或Adobe Acrobat?目前,生成的PDF看起来不错,但我无法选择和修改任何图形(线,多边形等)在任何层。 PDFClown生成以

  • 我正在寻找一些关于使用模型在django admin上创建一个“仅创建”字段的解决方案。我以前看到过一些问题,但没有人能回答核心问题:当用户在管理面板上创建时,字段应该出现,但我不希望能够编辑。 models.py admin.py “readonly_fields”解决了以后编辑时的问题,但在创建时却导致了禁止。 问题:我使用这个字段来做一个散列,我不想再做这个改变…我曾想过使用第二个字段,在创

  • 问题内容: 是否可以使用PHP创建,编辑和删除crontab作业? 我知道如何列出Apache用户的当前crontab作业: 但是如何用PHP添加cron作业呢?’crontab -e’只会打开一个文本编辑器,您必须在保存文件之前手动编辑条目。 以及如何使用PHP删除cron作业?同样,您必须通过’crontab -e’手动执行此操作。 使用这样的作业字符串: 如何使用PHP将其添加到cronta

  • 了解如何在 Dreamweaver 模板中创建和删除可编辑区域。 可编辑模板区域控制在基于模板的页面中用户可以编辑哪些区域。在插入可编辑区域之前,将要插入该区域的文档另存为模板。 注意:如果您是在文档而不是模板文件中插入可编辑区域,则会收到警告,告诉您该文档将自动另存为模板。 您可以将可编辑区域置于页面的任意位置,但如果要使表格可编辑,您需要考虑以下几点: 可以将整个表格或单独的表格单元格标记为可