耶,
也许这是一个简单的问题,但我坚持这个问题所以我需要你的帮助。
我在ItemsControl中的ItemsControl.ItemTemplate中的DataTemplate中有一个TextBox,我希望在我的一个ViewModel属性中发送键入的值。
ItemsControl
|ItemsControl.ItemTemplate
||Datatemplate
|||Grid
||||textBox --> Value == > MyViewModel
目前,我有一个“DisplayedItems”列表,绑定到ItemsControl的“ItemsSource”属性,填充ItemsControl,我得到的值由列表中的一个DisplayedItem接收,不幸的是留在那里。我绝对不知道如何从ViewModel类中获取它或使用它。
||||textBox --> Value --> DisplayedItem --?-->ViewModelClass
<ItemsControl Name="IcChoice" ItemsSource="{Binding Items, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Width="350" Height="150" >
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid Visibility="{Binding Visible, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}">
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<TextBlock Text="{Binding Title}" Grid.Row="0"/>
<ComboBox ItemsSource="{Binding Children}" Visibility="{Binding ComboBoxVisibility}" Grid.Row="1"/>
<TextBox Text="{Binding HelloWorldViewModel.ReceivedText, UpdateSourceTrigger=PropertyChanged, Mode=TwoWay}" Visibility="{Binding TextBoxVisibility}" Grid.Row="1">
</TextBox>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
我可以得到一些帮助吗?
答案 0 :(得分:0)
我找到了解决方案。
我需要为封装的控件定义一个特定的数据上下文:
<TextBox
Text="{Binding DataContext.ReceivedText,
ElementName=Hello,
UpdateSourceTrigger=PropertyChanged,
Mode=TwoWay}"
Visibility="{Binding TextBoxVisibility}"
Grid.Row="1"/>
如果“Hello”是我的视图的名称(它与viewModel建立链接)