2015-09-30 3 views
2

Xaml:Xamdatagrid IsReadOnly связывание не работает

<igDP:Field Name="Range" Label="Range (>=)" Width="AUTO"> 
             <igDP:Field.Settings> 
              <igDP:FieldSettings AllowEdit="True" EditorType="{x:Type igEditors:XamNumericEditor}" EditAsType="{x:Type sys:Double}"> 
               <igDP:FieldSettings.EditorStyle> 
                <Style TargetType="{x:Type igEditors:XamNumericEditor}"> 
                 <Setter Property="IsReadOnly" Value="{Binding DataItem.IsReadOnly}" /> 
                </Style> 
               </igDP:FieldSettings.EditorStyle> 
              </igDP:FieldSettings> 
             </igDP:Field.Settings> 
            </igDP:Field> 

вид Модель:

public bool IsReadOnly 
    { 
     get { return false; } 
    } 

Я хочу, чтобы отформатировать ячейку на основе условий, например, когда получить ложные из БД, то пользователь не может редактировать данные в ячейку и наоборот. Я также попытался связать с помощью AllowEdit, но он не работает. Вышеуказанный метод в представлении модели является лишь тестовым примером. Надеюсь, кто-то может предложить какое-то решение.

ответ

0

Попробуйте связать IsEnabled свойство числового редактора, создав свойство IsEnabled в DataContext записи. Это будет работать.

<Setter Property="IsEnabled" Value="{Binding DataItem.IsEnabled}"/> 
1

Ваша проблема не ясно ::::

если вы связывании IsReadOnly свойство внутри объекта НЕ VM ваши переплетные работы отлично.

Но если привязать к VM собственности, то вы должны будете сделать это:

<Style TargetType="{x:Type igEditors:XamNumericEditor}"> 
     <Setter Property="IsReadOnly" Value="{Binding DataContext.IsReadOnly,RelativeSource={RelativeSource AncestorType=igDP:XamDataGrid}" /> 
</Style>