トップ回答者
WPF DataGridのセルが編集できない

質問
-
以下のサンプルプログラムを実行していますが、バインディングされたセルをダブルクリックして編集したくてもできません。
可能な限り IsReadOnly="False" を入れているのですが。
解決方法を教えて下さい。よろしくお願い致します。
(XAML)
<Window x:Class="MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="t1" Height="328" Width="613" BorderBrush="#FF3C8012" MaxHeight="479" MaxWidth="657">
<Grid Margin="0" RenderTransformOrigin="0.501,0.48">
<DataGrid x:Name="DataGrid1" AutoGenerateColumns="False" Margin="50,50,50,1" IsReadOnly="False" CanUserAddRows="True" CanUserDeleteRows="True">
<DataGrid.Columns>
<DataGridTemplateColumn Header="col1" Width="80" IsReadOnly="False" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding col1}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
</Window>
(VBソース)
Imports System.Collections.ObjectModel
Class MainWindow
Public DGSource As New TestClassCollection()
Private Sub MainWindow_Loaded(sender As Object, e As System.Windows.RoutedEventArgs) Handles Me.Loaded
Dim k0 As New TestClass
DGSource.Clear()
DGSource.Add(k0)
Me.DataGrid1.ItemsSource = DGSource
End Sub
End Class
Public Class TestClassCollection
Inherits ObservableCollection(Of TestClass)
End Class
Public Class TestClass
Public Property col1 As String
Public Sub New()
Dim r = New System.Random()
Dim i1 As Integer = r.Next(9999)
Me.col1 = String.Format("{0:0000}", i1)
End Sub
End Class
回答
すべての返信
-
これで解決できました。 TwoWayバインディングをやりたいと思っていたので良かったです。御回答まことにありがとうございました。
<DataGridTemplateColumn Header="col1" Width="80" >
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<TextBlock Text="{Binding col1}"/>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
<DataGridTemplateColumn.CellEditingTemplate>
<DataTemplate>
<TextBox Text="{Binding col1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" />
</DataTemplate>
</DataGridTemplateColumn.CellEditingTemplate>
</DataGridTemplateColumn>