【问题标题】:DataGrid cell edit Mode=TwoWayDataGrid 单元格编辑模式=TwoWay
【发布时间】:2014-10-17 09:44:05
【问题描述】:

我有一个DataGrid,如下所示

 <DataGrid ItemsSource="{Binding Templates}" SelectedItem="{Binding SelectedTemplate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" 
    CanUserSortColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Templates" Binding="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Width="*"/>
    </DataGrid.Columns>
</DataGrid>

有问题的两个属性如下

private ObservableCollection<string> _templates;
public ObservableCollection<string> Templates {
    get { return _templates; }
    set {
        if (_templates == value)
            return;

        _templates = value;
        RaisePropertyChanged("Templates");
    }
}

private string _selectedTemplate;
public string SelectedTemplate {
    get { return _selectedTemplate; }
    set {
        if (_selectedTemplate == value)
            return;

        _selectedTemplate = value;
        RaisePropertyChanged("SelectedTemplate");
    }
}

我希望通过 UI 对上述DataGrid 中的单元格执行Edit 操作,并且相应的更改必须在绑定属性中可用。

现在String 类没有实现INotifyPropertyChanged,在 UI 中编辑单元格不会反映属性值的变化。那么有没有人知道是否有解决方法以便我可以实现所需的功能?

【问题讨论】:

    标签: c# wpf datagrid


    【解决方案1】:

    您在这里没有太多选择...创建一个具有string Template 属性的TemplateModel 类。使其实现INotifyPropertyChanged 并更改以下内容:

    • TemplatesObservableCollection&lt;TemplateModel&gt; 的类型
    • SelectedTemplateTemplateModel 的类型
    • 绑定到{Binding Path=Template, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2010-12-10
      • 1970-01-01
      • 1970-01-01
      • 2011-07-25
      • 2012-12-04
      • 2011-11-27
      • 1970-01-01
      相关资源
      最近更新 更多