我有一个RadGridView
(telerik 的 a 版本GridView
),其中RadGridView
我有以下列:
<telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Revoked}" AutoSelectOnEdit="True" Header="Revoked" UniqueName="Revoked" Width="Auto" IsReadOnly="False" FooterTextAlignment="Right" CellStyle="{StaticResource GridCellStyle}" />
我想根据复选框列在网格中的另外两列上启用/禁用或设置只读标志。
<telerik:GridViewDataColumn
DataMemberBinding="{Binding RevokedBy}"
Header="Revoked By"
UniqueName="RevokedBy"
Width="Auto"
IsReadOnly="{Binding Revoked}"
FooterTextAlignment="Right"
CellStyle="{StaticResource GridCellStyle}" />
<telerik:GridViewDataColumn
DataMemberBinding="{Binding RevokedDateTime}"
DataFormatString="dd/MM/yyyy HH:mm:ss"
Header="Revoked Date Time"
UniqueName="RevokedDateTime"
Width="Auto"
IsReadOnly="{Binding Revoked}"
FooterTextAlignment="Right"
CellStyle="{StaticResource GridCellStyle}">
<telerik:GridViewDataColumn.CellEditTemplate>
<DataTemplate>
<WrapPanel Grid.Column="1" Grid.ColumnSpan="2" Grid.Row="4">
<telerik:RadDateTimePicker
Margin="0 5 5 5"
Width="250"
DisplayFormat="Short"
InputMode="DatePicker"
DateSelectionMode="Day"
DateTimeWatermarkContent="Select Date"
MaxWidth="155"
MinWidth="155"
SelectedDate="{Binding RevokedDate, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<telerik:RadMaskedDateTimeInput
Margin="5"
Culture="en-GB"
EmptyContent="Enter Time"
InputBehavior="Replace"
Mask="HH:mm:ss"
SelectionOnFocus="SelectAll"
TextMode="MaskedText"
Value="{Binding RevokedTime, Mode=TwoWay}"/>
</WrapPanel>
</DataTemplate>
</telerik:GridViewDataColumn.CellEditTemplate>
</telerik:GridViewDataColumn>
到目前为止,我已经尝试将IsReadOnly
andIsEnabled
属性绑定到,Revoked
但这似乎不起作用,我可以看到Revoked
正在设置属性并且RaisePropertyChanged
事件正在重复发生。
任何帮助将非常感激。
更新:
视图模型:
/// <summary>
/// The agreements.
/// </summary>
private ObservableCollection<NotificationAgreement> agreements;
/// <summary>
/// Gets or sets the agreements.
/// </summary>
public ObservableCollection<NotificationAgreement> Agreements
{
get
{
return this.agreements ?? (this.agreements = new ObservableCollection<NotificationAgreement>());
}
set
{
this.agreements = value;
this.RaisePropertyChanged(() => this.Agreements);
}
}
NotificationAgreement 类具有以下属性。
/// <summary>
/// Gets or sets a value indicating whether revoked.
/// </summary>
public bool Revoked
{
get
{
return this.revoked;
}
set
{
this.revoked = value;
this.RaisePropertyChanged(() => this.Revoked);
}
}