2016-10-18 48 views
0

在我正在處理的應用程序中,如果用戶不是Admin,則不允許更改數據。但他仍然必須能夠只讀訪問數據。根據ViewModel中Propery的值禁用XamDataGrid的行

如果我禁用了網格本身,我無法滾動瀏覽記錄,也無法使用infragistics XamDataGrid的內置過濾功能。我想實現的是僅禁用數據網格的行,以便它處於只讀狀態。

在ViewModel中,我有一個名爲IsAdmin的布爾屬性。

private bool _isAdmin; 
    public bool IsAdmin 
    { 
     get { return _isAdmin; } 
     set { SetProperty(ref _isAdmin, value); } 
    } 

在查看我的XamDataGrid

<igDP:XamDataGrid x:Name="LookupItems" Grid.Row="2" Grid.ColumnSpan="3" Margin="2,4" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" BorderBrush="Black" 
          BorderThickness="1" Theme="Office2010Blue" ActiveDataItem="{Binding SelectedLookupItem}" DataSource="{Binding SelectedLookupTableLookupItems}" > 

      <igDP:XamDataGrid.InputBindings> 
       <KeyBinding Key="Del" Command="{Binding DeleteItemCommand}" /> 
      </igDP:XamDataGrid.InputBindings> 

      <igDP:XamDataGrid.FieldLayoutSettings> 
       <igDP:FieldLayoutSettings AllowDelete="True" HighlightAlternateRecords="True" AllowAddNew="True" AutoArrangeCells="LeftToRight" 
              ResizingMode="Immediate" SelectionTypeRecord="Single" AutoGenerateFields="False" /> 
      </igDP:XamDataGrid.FieldLayoutSettings> 

      <igDP:XamDataGrid.FieldSettings> 
       <igDP:FieldSettings AllowRecordFiltering="True" AllowGroupBy="False" /> 
      </igDP:XamDataGrid.FieldSettings> 

      <igDP:XamDataGrid.FieldLayouts> 
       <igDP:FieldLayout> 
        <igDP:FieldLayout.Fields> 

         <igDP:Field Name="ConvertFrom" Label="From" AllowEdit="True" Width="*" 
            IsEnabled="{Binding Path=DataContext.IsAdmin, RelativeSource={RelativeSource AncestorType={x:Type igDP:XamDataGrid}}}" > 
          <igDP:Field.Settings> 
           <igDP:FieldSettings FilterOperandUIType="TextBox" FilterOperatorDefaultValue="Contains" /> 
          </igDP:Field.Settings> 
         </igDP:Field> 

         <igDP:Field Name="ConvertTo" Label="To" AllowEdit="True" Width="*" AllowRecordFiltering="False" 
            IsEnabled="{Binding Path=DataContext.IsAdmin, RelativeSource={RelativeSource AncestorType={x:Type igDP:XamDataGrid}}}"> 
         </igDP:Field> 

        </igDP:FieldLayout.Fields> 
       </igDP:FieldLayout> 
      </igDP:XamDataGrid.FieldLayouts> 
     </igDP:XamDataGrid> 

我的問題是,在DataGrid中的字段沒有得到殘疾人的聲明。我知道我的屬性正在工作,因爲我在頁面上有其他控件(文本框,組合框,複選框等),當IsAdmin屬性設置爲false時被禁用。

我的數據網格綁定有什麼問題嗎?我找不出什麼問題。

回答

相關問題