I have a RadGridView
(telerik's version of a GridView
) and in this RadGridView
I have the following column:
<telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Revoked}" AutoSelectOnEdit="True" Header="Revoked" UniqueName="Revoked" Width="Auto" IsReadOnly="False" FooterTextAlignment="Right" CellStyle="{StaticResource GridCellStyle}" />
I want to either enable/disable or set the read only flag on another two columns in the grid based on the checkbox column.
<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>
So far I have tried binding the IsReadOnly
and IsEnabled
property to Revoked
but this doesn't seem to work, and I can see that the Revoked
property is being set and the RaisePropertyChanged
event is recurring.
Any help would be much appreciated.
UPDATED:
ViewModel:
/// <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);
}
}
And the NotificationAgreement class has the following property.
/// <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);
}
}
Can you paste your ViewModel, I just want to know that your are raising Notification to view when Revoked is Changed.
(1) Your viewmodel should have one ObservableCollection<yourObject>
(2) yourObject
should implement INotifyPropertyChanged
(3) your Object should have property in following way
private bool _revoked;
public bool Revoked
{
get{return _revoked;}
set { _revoked=value;
RaisPropertyChanged("Revoked");
}
This is just mock code, please do it in your way.
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.