WPF Datagrid编辑单元格问题

标签 wpf mvvm datagrid

当我绑定(bind)我的 ObservableCollection给我的DataGridAutoGenerateColumns为真。我可以双击要编辑的单元格,然后可以编辑单元格中的文本。

但是当我设置 AutoGenerateColumns为 false 并想使用自定义 DataGridTextColumns ,我也可以双击单元格。但是那里的文本被删除了,所以我有一个空字符串,而不是我想稍微编辑的那个。

关于这个问题的任何想法?

这是我的DataGrid :

<DataGrid ItemsSource="{Binding Tasks}" 
          Margin="0,10,30,0" 
          AutoGenerateColumns="False"
          Style="{DynamicResource DataGridStyle}"
          HorizontalScrollBarVisibility="Hidden"
          SelectedItem="{Binding SelectedTask}">

    <DataGrid.Columns>
        <DataGridTextColumn>
            <DataGridTextColumn.ElementStyle>
                <Style TargetType="TextBlock">
                    <Setter Property="Margin" Value="6,0,0,0" />
                    <Setter Property="Text" Value="{Binding Description}" />
                    <Setter Property="VerticalAlignment" Value="Center" />
                </Style>
            </DataGridTextColumn.ElementStyle>
        </DataGridTextColumn>
    </DataGrid.Columns>
</DataGrid>

编辑:
我还注意到当 AutoGenerateColumns设置为 false,当我插入新行时,绑定(bind)的文本没有设置...
当我设置 AutoGeneratedColumns为 true 它绑定(bind)插入的文本。

最佳答案

数据网格有一个 datagrid 模板列,该列有一个 CellTemplate 和一个 CellEditingTemplate。如果您为两者定义模板,您也可以为两者显式设置绑定(bind)。也许这会解决你的问题。

这是带有两个模板的模板列示例

<DataGridTemplateColumn Header="TEXT" >
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding YourBindingProperty}" Style="{StaticResource YourEditStyle}"/>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <TextBox x:Name="EditTextbox" Text="{Binding YourBindingProperty, Mode=TwoWay, UpdateSourceTrigger=LostFocus, ValidatesOnDataErrors=True}" Style="{StaticResource YourEditStyle}">
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>

希望这可以帮助

关于WPF Datagrid编辑单元格问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17074992/

相关文章:

WPF 如何将 Popup 附加到像矩形这样的简单 UIElement

android - 如何使用 xml 中的 View 引用将参数传递给使用数据绑定(bind)的函数?

python - Meshgrid Numpy 中的 N 列矩阵(或其他)

wpf - 如何从 XAML 中为样式中的控件指定工具提示?

MVVM场景中的WPF Datagrid自动滚动

wpf - 如何防止在第一次单击时选择整个DataGrid行?

c# - 不同网格中的同步网格列宽度,或在某些表中联合单元格的最简单方法

c# - 在 WPF 中向鼠标方向旋转图形(如模拟表盘)

wpf - 如果不指定祖先,绑定(bind)将不起作用

wpf - Prism 、MVVM 和模块化