Ram349 Ответов: 1

В datagrid нажмите на ячейку combobox is (edititemtempalate) не приходит


Всем Привет,
Я работаю над приложением WPF,здесь я пытаюсь изменить значение на основе выбора combobox в datagrid.Но если я нажму на ячейку(двойной щелчок или одиночный щелчок), я не получу combobox.
Я использую приведенный ниже код.
<DataGrid Grid.Row="1" Grid.Column="3" x:Name="fieldGrid" 
   AutoGenerateColumns="False" GridLinesVisibility="None"  AllowDrop="True" Drop="__fieldGrid_Drop" PreviewDrop="__fieldGrid_PreviewDrop">
 <DataGrid.Columns >
<DataGridTemplateColumn Header="Source Table Columns"  Width="*" 
 CanUserResize="True" IsReadOnly="True" CanUserSort="True" SortMemberPath="ColumnName"
 CellTemplate="{StaticResource DataSourceCellTemplate2}" CellEditingTemplate="{StaticResource EditingDateTemplate}" SortDirection="Ascending"/>
</DataGrid.Column>
 </DataGrid>

и я создал CellTemplate и CellEditingTemplate отдельно.этот код приведен ниже.
<datatemplate x:key="DataSourceCellTemplate2">
&ЛТ;элемент StackPanel ориентация="горизонтальный" маржи="1,3"и GT;
<имя элемента TextBlock="dsFieldText2" текст="{привязки значение}"&ГТ;



<datatemplate x:key="EditingDateTemplate">
&ЛТ;элемент StackPanel ориентация="горизонтальный" маржи="1,3"и GT;
<combobox>



Если я нажму на ячейку, даже я не получу пустой combobox.
Кто-нибудь, пожалуйста, помогите мне.

Что я уже пробовал:

Меня судили по стольким статьям.Я использовал приведенный ниже код
<DataGridTemplateColumn Header="">
    <DataGridTemplateColumn.CellEditingTemplate>
        <DataTemplate>
            <ComboBox IsEditable="False" 
                Text="{Binding ComponentIdentifier,Mode=TwoWay,UpdateSourceTrigger=PropertyChanged}"
                ItemsSource="{Binding Path=ApplicableIdentifiers, Mode=OneWay, UpdateSourceTrigger=PropertyChanged}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellEditingTemplate>
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding ComponentIdentifier}" />
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>


Если я использовал этот код то я получаю эту ошибку edititem не разрешен для этого представления в wpf datagrid

1 Ответов

Рейтинг:
0

Gerry Schmitz

<DataGridTemplateColumn Header="Source Table Columns"  Width="*" 

 CanUserResize="True" IsReadOnly="True" CanUserSort="True"

 SortMemberPath="ColumnName"
 CellTemplate="{StaticResource DataSourceCellTemplate2}" CellEditingTemplate="{StaticResource EditingDateTemplate}" SortDirection="Ascending"/>


Ram349

Привет, Джерри,Спасибо, что откликнулся на мой пост.Я попробовал IsReadOnly="True",но все равно получаю ту же проблему.Не могли бы вы предложить какое-нибудь альтернативное решение?

Richard Deeming

Вот что говорил Джерри: вы уже все приготовили IsReadOnly="True", что означает, что столбец доступен только для чтения. Вы не можете редактировать столбец только для чтения.

Либо измените его на IsReadOnly="False", или удалить IsReadOnly атрибут.