【问题标题】:Is it possible to bind a DataGridCheckBoxColumn to Nullable<DateTime>.HasValue?是否可以将 DataGridCheckBoxColumn 绑定到 Nullable<DateTime>.HasValue?
【发布时间】:2012-03-21 01:11:15
【问题描述】:

我在数据库中有这个列

enddate DATETIME NULL

Entity Framework 将其翻译成

DateTime? ENDDATE

我的 DataGrid 中有一个列

<DataGridCheckBoxColumn
      Binding="{Binding Path=ENDDATE.HasValue}"
      Header="Concluded?" />

但它不起作用。怎么做?

【问题讨论】:

  • 我不知道DataGridCheckBoxColumn 的具体情况,但你确定要使用Binding=… 吗?我希望它类似于IsChecked="{Binding Path=ENDDATE.HasValue}"
  • 当我使用 IsChecked="{Binding Path=ENDDATE}" 时,它会检查它为空的单元格。
  • @Jay 可能不行,因为它不起作用
  • EndDate 是否会发出通知?如果您执行 EndDate.Value = ... 会引发一个吗?您可以尝试添加特定属性 EndDateHasValue{get{}} 并引发通知吗?

标签: wpf binding entity-framework-4 datagrid checkbox


【解决方案1】:

这适用于我使用 Mvvm Light:

public class DataItem : ViewModelBase
{
    private double? _number;
    public double? Number
    {
        get { return _number; }
        set
        {
            Set(()=>Number, ref _number, value);
            RaisePropertyChanged(()=>NumberHasValue);
        }
    }

    public bool NumberHasValue
    {
        get { return Number.HasValue; }
    }
}

<Grid>
    <DataGrid x:Name="grid" AutoGenerateColumns="false">
        <DataGrid.Columns>
            <DataGridTextColumn Binding="{Binding Number}"/>
            <DataGridCheckBoxColumn Binding="{Binding NumberHasValue, Mode=OneWay}"/>
        </DataGrid.Columns>
    </DataGrid>
</Grid>

【讨论】:

    猜你喜欢
    • 2011-08-18
    • 2010-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-08
    • 2011-05-31
    • 1970-01-01
    相关资源
    最近更新 更多