私はRadGridView
(telerik のバージョンのGridView
) を持っており、これRadGridView
には次の列があります。
<telerik:GridViewCheckBoxColumn DataMemberBinding="{Binding Revoked}" AutoSelectOnEdit="True" Header="Revoked" UniqueName="Revoked" Width="Auto" IsReadOnly="False" FooterTextAlignment="Right" CellStyle="{StaticResource GridCellStyle}" />
チェックボックス列に基づいて、グリッド内の別の 2 つの列に読み取り専用フラグを有効/無効にするか、設定したいと考えています。
<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);
}
}