WPF DataGridCell IsReadOnly через XAML в зависимости от свойства
Мне нужно установить свойство IsReadOnly для datagridCell в зависимости от свойства.
<WPFCtrlDG:ExtDataGrid Grid.Row="2"
InternalAddCommandHandling="False"
InternalDeleteCommandsHandling="False"
ItemsSource="{Binding Path=Attributes, Mode=TwoWay}"
Command="{Binding Path=AttributesCommand}">
<WPFCtrlDG:ExtDataGrid.Columns>
<WPFCtrlDG:ExtDataGridTextColumn Header="Attribute" Tag="ID_ATTRIBUTE" Width="*" IsReadOnly="{Binding Path=FL_COMMON, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}"/>
<WPFCtrlDG:ExtDataGridTextColumn Header="Value" Tag="ID_VALUE" Width="*" IsReadOnly="true"/>
</WPFCtrlDG:ExtDataGrid.Columns>
</WPFCtrlDG:ExtDataGrid>
public BindingList<SPC_SPL2_ATTRIBUTE> Attributes
{
get
{
if (Context.SPC_SPL2_ATTRIBUTE == null)
Controller.Execute(delegate(IResult result)
{
Dictionary<string, object> parameters = new Dictionary<string, object>();
parameters.Add("FL_ACTIVE", true);
parameters.Add("CD_SPL2", CurrentSPL2.CD_SPL2);
Model.Invalidate(typeof(SPC_SPL2_ATTRIBUTE), Filter.GENERIC<SPC_SPL2_ATTRIBUTE>(parameters, "ID_ATTRIBUTE"));
if (Model.Appendload(result) == false)
return false;
return result.Successful;
});
return Context.SPC_SPL2_ATTRIBUTE;
}
set { Context.SPC_SPL2_ATTRIBUTE = value; }
}
FL_COMMON является логическим свойством и находится внутри объектов, отображаемых в сетке данных, но код, который я написал, не работает, в то время как если я установил IsreadOnly в значение true, это сработает.
Что я делаю неправильно? благодарю вас
1 ответ
Вы вызываете OnPropertyChanged("FL_COMMON"); в сеттере?
Класс, содержащий FL_COMMON, должен реализовывать INotifyPropertyChanged, а свойство должно выглядеть примерно так:
private bool _FL_COMMON;
public bool FL_COMMON
{
get { return _FL_COMMON; }
set
{
_FL_COMMON = value;
OnPropertyChanged("FL_COMMON");
}
}