wpf - 未使用 wpf 在 DevExpress GridControl 中选中复选框

标签 wpf checkbox devexpress gridcontrol

我正在尝试处理 DevExpress GridControl Checkbox 列,但问题是当我在 XAML 代码中动态绑定(bind)复选框值时,它不能完美地工作
下面我为您提供我的演示项目代码:-

XAML 代码:-

<dxg:GridControl AutoPopulateColumns="True" HorizontalAlignment="Left"  Margin="0,40,0,0" Name="gridControl1" VerticalAlignment="Top" Height="318" Width="503">
            <dxg:GridControl.View>
                <dxg:TableView Name="tableView1" ShowTotalSummary="True" />
            </dxg:GridControl.View>
            <dxg:GridControl.Columns>
                <dxg:GridColumn DisplayMemberBinding="{Binding Path=EvenOdd}" Header="Even/Odd" />
                <dxg:GridColumn Name="PickColumn" Header="Pick" Width="30" 
                                    AllowColumnFiltering="False" AllowSorting="False">
                    <dxg:GridColumn.CellTemplate>
                        <DataTemplate>
                            <CheckBox IsChecked="{Binding Path=IsValid}"
                                          HorizontalAlignment="Center" VerticalAlignment="Center" >
                            </CheckBox>
                        </DataTemplate>
                    </dxg:GridColumn.CellTemplate>
                </dxg:GridColumn>
            </dxg:GridControl.Columns>
        </dxg:GridControl>

我的cs文件代码:-
public class ss
{
  public bool IsValid { get; set; }
  public string EvenOdd { get; set; }
}

代码背后:
    public List<ss> sList = new List<ss>();


    private void Window_Loaded(object sender, RoutedEventArgs e)
    {

        for (int i = 0; i < 10; i++)
        {

            if (i % 2 == 0)
            {
                sList.Add(new ss { IsValid = true, EvenOdd = "Even" });
            }
            else
            {
                sList.Add(new ss { IsValid = false, EvenOdd = "Odd" });
            }
        }

       gridControl1.ItemsSource = sList;
    }

最佳答案

添加到 HighCore 的答案。如果您想编辑网格中的数据。

ColumnBase.CellTemplate Property :

  • To enable data editing, use an editor shipped with the DevExpress Data Editors Library for WPF. The editor's Name must be set to 'PART_Editor'.
  • Standard controls can be used in CellTemplate only for display purposes. Data editing is not allowed.


然后,
xmlns:dxe="http://schemas.devexpress.com/winfx/2008/xaml/editors" 

<dxg:GridColumn Name="PickColumn" 
                Header="Pick" 
                Width="30" 
                AllowColumnFiltering="False" 
                AllowSorting="False">
    <dxg:GridColumn.CellTemplate>
        <DataTemplate>
            <dxe:CheckEdit x:Name="PART_Editor"
                           EditValue="{Binding Path=Data.IsValid, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
        </DataTemplate>
    </dxg:GridColumn.CellTemplate>
</dxg:GridColumn>

您仍然需要使用 HighCore 的 INotifyPropertyChanged 实现.

关于wpf - 未使用 wpf 在 DevExpress GridControl 中选中复选框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17815883/

相关文章:

.net - 我可以使用 C++/CLI (.NET Winforms/WPF) 为使用 native C 和 C++ 编写的应用程序提供 GUI

android - 设置复选框列表对话框的复选框

jquery - 进行选中/取消选中复选框操作的更好方法

ReactJS 组件始终使用外部库重新渲染

c# - WPF 设计器中窗口上方出现白色边框

WPF 自定义面板/控件创建 -- "The Doughnut"

c# - 编辑绑定(bind)到同一绑定(bind)源的 TextEdits 中的 GridControl 中选择的多行

c# - 将 Outlook.MailItem.body 设置为富文本时出现异常

c# - WPF DataGrid - 基于行动态绑定(bind) DataGridComboBoxColumn

javascript - AngularJS 复选框模型在选中时不会更新