Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# x:FieldModifier导致DataTemplate内出现问题_C#_Wpf_Xaml_Datatemplate - Fatal编程技术网

C# x:FieldModifier导致DataTemplate内出现问题

C# x:FieldModifier导致DataTemplate内出现问题,c#,wpf,xaml,datatemplate,C#,Wpf,Xaml,Datatemplate,下面的代码在第一列的列标题中放入一个复选编辑。但是,我需要访问C#代码隐藏中的复选框(按名称)。有人能告诉我为什么我不能在数据模板中定义的检查编辑中使用x:FieldModifier=“public”设置吗?是的,我确实在这个文件的根元素中定义了x:Class=“..”,只是下面没有显示 <Grid> <dxg:GridControl Name="gridControl_ExportList" AutoPopulateColumns="False" ItemsSourc

下面的代码在第一列的列标题中放入一个复选编辑。但是,我需要访问C#代码隐藏中的复选框(按名称)。有人能告诉我为什么我不能在
数据模板
中定义的
检查编辑
中使用
x:FieldModifier=“public”
设置吗?是的,我确实在这个文件的根元素中定义了x:Class=“..”,只是下面没有显示

<Grid>
    <dxg:GridControl Name="gridControl_ExportList" AutoPopulateColumns="False" ItemsSource="{Binding}">

        <dxg:GridControl.Resources>
            <DataTemplate x:Key="flagCustomizationArea">
                <dxe:CheckEdit x:Name="checkEditSelectAllBox" x:FieldModifier="public" ToolTip="Select/Deselect All" HorizontalContentAlignment="Center" Checked="CheckEdit_SelectAllChecked" Unchecked="CheckEdit_SelectAllUnchecked"/>
            </DataTemplate>
        </dxg:GridControl.Resources>

        <dxg:GridControl.Columns>
            <dxg:GridColumn Name="isSelected" x:FieldModifier="public" Header="" Width="27" AllowResizing="False" FieldName="IsSelected" HeaderCustomizationAreaTemplate="{StaticResource flagCustomizationArea}"/>

我意识到这里的一些代码与DevExpress相关,但手头的问题似乎是XAML的一般问题。提前感谢您提供的任何见解。顺便说一句,我得到的确切错误是“属性'FieldModifier'在XML命名空间“”中不存在”


编辑:是的,你说的很有道理。谢谢你的回答。那么,我该如何取消选中C#code behind中的列标题复选框?目前,当用户单击该列标题复选框时,它会选中该列中的所有复选框。当用户取消选中该列标题复选框时,它会取消选中所有复选框b该列中的复选框。这是我想要的行为。但是,在更新表时执行某些操作后,我希望取消选中列标题。由于所有行上的复选框都绑定到数据,因此它们将按应更新。例如,在操作X之后,某些复选框可能被选中,而其他复选框则不被选中;因此,我不想要标题复选框已被选中。如何取消选中列标题复选框?我最初的想法是,如果我将其公开,我可以将其设置为未选中。但是,您的解释很有意义,我无法执行此操作。

您不能在模板中使用此修改器。请考虑一下:如果您要使用此项设置多个控件模板,每个模板生成自己的复选框,您的字段将引用哪个复选框?请描述您试图用修饰符解决的问题。可能有不同的解决方法。请参阅原始问题中的“编辑”。谢谢您的回答。我将使列处于选中状态(顺便说一下,它实际上是三态的)绑定到与列对应的viewmodel部分。建立双向绑定(然后可以在属性setter中处理自定义逻辑),或将选中/取消选中操作绑定到同一viewmodel上的命令,并在命令处理程序中使用此逻辑。修改行的选择状态时,将列状态属性设置为“不确定”(null).WPF理念最适用于数据绑定。事件处理程序和用户控制代码最适合保存为自定义UI外观。