首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >禁用XamGrid中的单元格编辑

禁用XamGrid中的单元格编辑
EN

Stack Overflow用户
提问于 2016-05-09 06:00:23
回答 3查看 1.3K关注 0票数 0

我正在研究与DataTable绑定的XamGrid。我希望在特定条件下禁用单元格的编辑。我创建了XamGrid的行为。

能根据我的要求提出解决方案吗?

EN

回答 3

Stack Overflow用户

发布于 2016-05-09 07:18:13

尝试使用数据触发器定义样式:

代码语言:javascript
复制
        <igWPF:XamDataGrid.Resources>

        ...
        <Style TargetType="CellValuePresenter">
            <Style.Triggers>
                <!--one condition based trigger - condition is inside the cell data context-->
                <DataTrigger Binding="{Binding Path=DataItem.ConditionA}" Value="True">
                    <Setter Property="IsEnabled" Value="False"/>
                </DataTrigger>
                <!--multiple condition based trigger - condition is inside the cell data context-->
                <MultiDataTrigger>
                    <MultiDataTrigger.Conditions>
                        <Condition Binding="{Binding Path=DataItem.ConditionA}" Value="True" />
                        <Condition Binding="{Binding Path=DataItem.ConditionB}" Value="False" />
                    </MultiDataTrigger.Conditions>
                    <MultiDataTrigger.Setters>
                        <Setter Property="IsEnabled" Value="False"></Setter>
                    </MultiDataTrigger.Setters>
                </MultiDataTrigger>
            </Style.Triggers>
        </Style>

        ...

    </igWPF:XamDataGrid.Resources>

致以问候。

票数 2
EN

Stack Overflow用户

发布于 2016-05-09 09:22:06

CellValuePresenter的使用风格

代码语言:javascript
复制
<Style x:Key="DisableForCTE" TargetType="{x:Type iDP:CellValuePresenter}" >
    <Style.Triggers>
        <DataTrigger Binding="{Binding Path=DataItem.CTESubLocation}" Value="No">
              <Setter Property="IsEnabled" Value="False"></Setter>                        
         </DataTrigger>                    
     </Style.Triggers>
</Style>

此外,如果条件是预先定义的,则可以将cells禁用为列级别:

代码语言:javascript
复制
 <iDP:Field Name="LatestEffectiveDate" Label="Latest Effective Date" >
 <iDP:Field.Settings>
     <iDP:FieldSettings AllowEdit="False">                                       
     </iDP:FieldSettings>
  </iDP:Field.Settings>

票数 1
EN

Stack Overflow用户

发布于 2016-05-10 14:45:15

这是为我工作的:

代码语言:javascript
复制
 dataGrid.EditingSettings.AllowEditing = EditingType.None;
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37108666

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档