2015-02-19 4 views
0

У меня есть сетка данных, которая связывается с источником данных. i set isReadOnly = "False" свойство для редактирования. когда я нажимаю на ячейку, возникает исключение. Xaml код: -окно закрывается при двойном щелчке по datagrid

<DataGrid Name="dataGrid1" AutoGenerateColumns="True" IsReadOnly="False"> 
      <DataGrid.Columns> 
       <DataGridTextColumn Header="Fee Head" Width="250" Binding="{Binding feename}" IsReadOnly="False"/> 
       <DataGridTextColumn Header="Amount(Rs.)" Width="250" Binding="{Binding NewAmount}"/> 
       <DataGridTextColumn Visibility="Hidden" Header="cnt" Width="10" Binding="{Binding id}"/> 


      </DataGrid.Columns> 
     </DataGrid> 

.cs код: -

var obje = (from tab in cd.FeeDeclarationDetails 
              join tab2 in cd.AccountHeadDBs on tab.AccountHeaddbid equals tab2.ID 
              where tab.AccountHeaddbid == tab2.ID 
              select new { feename = tab2.Head_Name, tab.NewAmount, cnt = (cd.FeeDeclarationDetails.Where(A => A.AccountHeaddbid == 1 && A.FeeDeclarationID == 1).ToList().Count > 0 ? cd.FeeDeclarationDetails.Where(A => A.AccountHeaddbid == 1 && A.FeeDeclarationID == 1).ToList().Count : 0) }).ToList(); 

        dataGrid1.ItemsSource = obje; 

я использую linq2sql. и исключение: - привязка TwoWay или OneWayToSource не может работать в качестве свойства «только для чтения» «NewAmount» типа «<> f__AnonymousType6 3[System.String,System.Nullable 1 [System.Int32], System.Int32] '. так как я могу решить эту проблему.

+0

Как говорит исключение, вы получите это, потому что' model' вы хотите отобразить имеет один или несколько свойств для чтения. Вы можете избавиться от исключения, добавив «..., Mode = OneWay» в выражение «Связывание», ссылающееся на эти свойства. –

+0

Я работаю над формой окна, и если я добавляю Mode = "OneWay", то ячейка не редактируется. и установите «TwoWay», тогда возникнет исключение – Joy

+1

. Вы правы, но проблема в этом случае заключается в том, что «Модель», созданная вашим текущим проектом, не может делать то, что вы хотите, поскольку свойство только для чтения просто невозможно отредактировать , И следующий (или предыдущий) вопрос может состоять в том, как вернуть отредактированную модель обратно в базовую БД. Я думаю, что, к сожалению, ваш реальный вопрос может быть слишком большим, чтобы вписаться в вопрос или ответ на один форум, предложите сначала прочитать несколько бесчисленных веб-статей, посвященных началу работы с MVVM. –

ответ

0

Ваша недвижимость «NewAmount'of Тип FeeDeclarationDetails, кажется, свойство только для чтения .. убедитесь, что он имеет сеттер ..

Смежные вопросы