2012-01-26 2 views
3

В моем XAML я пытаюсь связать AllowEdit моего XamDataGrid к свойствуInfragistics XamDataGrid AllowEdit свойство связывания не работает

<igDP:XamDataGrid.FieldSettings> 
    <igDP:FieldSettings AllowEdit="{Binding Path=DataItem.Approved}"/> 
</igDP:XamDataGrid.FieldSettings> 

Но это не работает. Все остальные привязки работают нормально. Есть идеи? Я новичок в WPF, поэтому любая помощь была бы оценена

+0

поля не являются частью визуального или логических деревьев, так привязок потерпит неудачу. Вы можете найти обходное решение для этого здесь: http://blogs.infragistics.com/blogs/josh_smith/archive/2008/06/06/binding-a-xamdatagrid-field-property.aspx – alhalama

ответ

-1

Возможно, вы связываетесь с ObservableCollection? Если это так, вы не можете редактировать свои объекты. Вместо этого вы можете попробовать привязать к BindingList.

4

Я использую стиль, чтобы обойти это ограничение, например:

<igWPF:Field Name="SomeValue"> 
    <igWPF:Field.Settings> 
    <igWPF:FieldSettings EditorType="{x:Type igWPF:XamNumericEditor}"> 
     <igWPF:FieldSettings.EditorStyle> 
     <Style TargetType="{x:Type igWPF:XamNumericEditor}"> 
      <Setter Property="IsReadOnly" Value="{Binding DataItem.IsReadOnly}" /> 
     </Style> 
     </igWPF:FieldSettings.EditorStyle> 
    </igWPF:FieldSettings> 
    </igWPF:Field.Settings> 
</igWPF:Field> 
+1

Это решение отлично работает! – FodderZone

+0

он вообще не компилируется, и я haev помечал его по ошибке (жалуется на DataItem) –

0

Я обычно использовал стиль для достижения этого, как в ответе @ larsmona выше. Недавно я узнал об использовании CellBindings и FieldBindings для достижения этого.

https://www.infragistics.com/community/blogs/b/blagunas/posts/feature-spotlight-new-fetaures-in-the-infragistics-wpf-xamdatagrid

https://www.infragistics.com/help/wpf/xamdatagrid-binding-cell-settings-data-item-properties

http://help.infragistics.com/Help/Doc/WPF/2014.2/CLR4.0/html/xamDataPresenter_Binding_Cell_Settings_Data_Item_Properties.html

<igDP:Field Name="SomeName" Row="0" Column="1" Label="SomeLabel" AllowEdit="True"> 
    <igDP:Field.CellBindings> 
    <igDP:CellBinding Target="Editor" Property="IsReadOnly" Binding="{Binding DataItem.SomeProperty}"></igDP:CellBinding> 
    </igDP:Field.CellBindings> 
</igDP:Field>