我有一个典型的MVVM场景:我有一个ListBox绑定到一个StepsViewModel列表.我定义了一个DataTemplate,以便StepViewModel呈现为StepViews.StepView UserControl有一组标签和TextBox.
我想要做的是选择在关注textBox时包装StepView的ListBoxItem.我尝试使用以下触发器为我的TextBox创建一个样式:
<Trigger Property="IsFocused" Value="true">
<Setter TargetName="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type ListBoxItem}}}" Property="IsSelected" Value="True"/>
</Trigger>
Run Code Online (Sandbox Code Playgroud)
但是我收到一个错误,告诉我TextBox没有IsSelected属性.我现在,但Target是一个ListBoxItem.我怎样才能使它工作?
我有一个ListBox使用以下DataTemplate显示项目:
<DataTemplate x:Key="PersonTemplate" DataType="{x:Type DAL:ResultItem}" >
<StackPanel Width="280" >
<TextBox BorderThickness="0" IsReadOnly="True" Background="Transparent" Text="{Binding FullName1, Mode=OneWay}"/>
...
</StackPanel>
</DataTemplate>
Run Code Online (Sandbox Code Playgroud)
我使用透明,只读,无边框TextBox而不是TextBlock,因为我希望用户能够选择要复制的文本.我应该采用不同的方式吗?我怎么写这个,这样当用户点击TextBox时,ListBoxItem也会被选中?
谢谢!
我有一个DataTemplate,它将是一个模板化的ListBoxItem,这个DataTemplate中有一个ComboBox,当它有焦点时我想要这个模板所代表的ListBoxItem被选中,这看起来对我来说.但遗憾的是它不起作用=(
所以这里真正的问题是在DataTemplate中是否可以ListBoxItem.IsSelected通过DataTemplate.Trigger?获取或设置属性的值?
<DataTemplate x:Key="myDataTemplate"
DataType="{x:Type local:myTemplateItem}">
<Grid x:Name="_LayoutRoot">
<ComboBox x:Name="testComboBox" />
</Grid>
<DataTemplate.Triggers>
<Trigger Property="IsFocused" value="true" SourceName="testComboBox">
<Setter Property="ListBoxItem.IsSelected" Value="true" />
</Trigger>
</DataTemplate.Triggers>
</DataTemplate>
<ListBox ItemTemplate="{StaticResource myDataTemplate}" />
Run Code Online (Sandbox Code Playgroud) 我有一个()的ListView约束.列表视图显示了几个绑定到observable集合中对象属性的文本框.ObservableCollectionListview.ItemsSource
我希望具有以下功能:当用户关注文本框时,列表视图中的相应项应该被选中.
我已尝试使用ContainerFromElement,ContainerFromItem等,但无法使用"简单"功能.
有任何想法吗...