【问题标题】:WPF Datagrid make cell readonly based on another cell in a same row with bindingWPF Datagrid 基于同一行中的另一个单元格通过绑定使单元格只读
【发布时间】:2021-07-11 14:18:48
【问题描述】:

我有非常简单的 WPF 数据网格,其中包含两列,一列带有复选框,另一列带有字符串类型。 当检查 GridCheckBoxColumn 时,我需要将 GridTextColumn 设为只读,反之亦然。 但我想通过绑定和 MVVM 模式来实现这一点。

<syncfusion:SfDataGrid AllowFiltering="True"
                       AutoGenerateColumns="False"
                       Grid.Row="0" ItemsSource="{Binding Decades}"
                       ColumnSizer="Star"
                       GridValidationMode="InView"
                       AllowEditing="True">
            <syncfusion:SfDataGrid.Columns>
                <syncfusion:GridTextColumn HeaderText="{x:Static properties:Strings.Id}" MappingName="Id" IsReadOnly="True"/>
                <syncfusion:GridTextColumn HeaderText="{x:Static properties:Strings.Name}" MappingName="Name" UpdateTrigger="PropertyChanged"/>
                <syncfusion:GridTextColumn HeaderText="{x:Static properties:Strings.StartDate}" MappingName="StartDate"/>
                <syncfusion:GridTextColumn HeaderText="{x:Static properties:Strings.EndDate}" MappingName="EndDate"/>
                <syncfusion:GridCheckBoxColumn HeaderText="{x:Static properties:Strings.NonStandard}" MappingName="NonStandard"/>
                <syncfusion:GridTextColumn HeaderText="{x:Static properties:Strings.PayDay}" MappingName="PayDay" AllowEditing="{Binding ????}"}"/>
            </syncfusion:SfDataGrid.Columns>
        </syncfusion:SfDataGrid>

【问题讨论】:

    标签: wpf mvvm binding


    【解决方案1】:

    这不能以简单的方式完成。
    一种解决方案 - 是在 TextBox 所在的单元格模板中使用 DataGridTemplateColumn。 并且 TextBox 设置为以您需要的方式绑定 IsReadOnly 属性。

    【讨论】:

      猜你喜欢
      • 2011-09-02
      • 2011-01-30
      • 2022-01-03
      • 1970-01-01
      • 1970-01-01
      • 2021-12-14
      • 1970-01-01
      • 2010-10-24
      • 1970-01-01
      相关资源
      最近更新 更多