【WPF・Prism】ListViewのDataTemplateに設定されたTextBoxが双方向Binding出来ない
String型の配列を複数のTextBoxで表示し、編集出来るようにしたいです。
現在試している方法だと、双方向にBindingが出来ておらず、TextBox内のテキストを編集してもTextBlockのテキストにリアルタイムでデータが反映されません。
※プロパティの更新通知がPrismを使用しています。
ご教授いただければ幸いです。。。
View
XAML
1<!--編集用--> 2<ListView ItemsSource="{Binding textArray}"> 3 <ListView.ItemTemplate> 4 <DataTemplate> 5 <TextBox Text="{Binding Path=., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" Height="25" Width="25"/> 6 </DataTemplate> 7 </ListView.ItemTemplate> 8</ListView> 9 10<!--確認用--> 11<ListView ItemsSource="{Binding textArray}"> 12 <ListView.ItemTemplate> 13 <DataTemplate> 14 <TextBlock Text="{Binding}" Height="25" Width="25"/> 15 </DataTemplate> 16 </ListView.ItemTemplate> 17</ListView> 18
###ViewModel
C#
1private ObservableCollection<string> _textArray; 2public ObservableCollection<string> textArray 3{ 4 get { return _textArray; } 5 set { SetProperty(ref _textArray, value); } 6} 7
試したこと
ListViewを使用せずにTextBoxとTextBlockに反映されるか確認すると、こちらはしっかりと反映されました。
大きな違いといえば、ListViewを使用していることくらいなのですが・・・
TextBoxのBinding設定が動いていないように思いますが、他に設定すべき項目があるのでしょうか?
開発環境
VisualStudio2019
Prism.Unity 8.0.0.1909
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/05/11 09:28
2021/05/11 09:51
2021/05/11 09:53