Kok*_*Teh 0 wpf listview selecteditem mvvm childcontrol
如何更好地ListView.SelectedItem
控制内部的儿童控制ListView
?
<ListView ItemsSource="{Binding Path=Records, Mode=TwoWay}" IsSynchronizedWithCurrentItem="True">
<ListView.SelectedItem>
<Binding Path="SelectedRecord" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged"/>
</ListView.SelectedItem>
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.Resources>
<DataTemplate DataType="x:Type ListViewItem">
<ListViewItem IsSelected="{Binding IsKeyboardFocusWithin"/>
</DataTemplate>
</ListView.Resources>
<ListView.View>
<GridView>
<GridViewColumn>
<TextBox ... Tag="{Binding}".../>
</GridViewColumn>
<GridViewColumn>
<TextBox ... Tag="{Binding}".../>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
该ListView
具有内子控件的行GridView
列.我想更新ListView.SelectedItem
任何行中的任何子控件具有键盘焦点时的绑定属性.如果可以在.xaml
文件中完全完成而不必诉诸代码,那将是很棒的.
将您的SelectionMode更改ListBox
为Single
如果未设置默认值SelectedItem
,则当前代码有效,但是如果设置默认值,SelectedItem
则单击第2个项目时不会自动取消选择,因此SelectedItem
保持绑定到默认选定项目,直到您将该行设置为焦点为止.再次删除它.
您也可以稍微简化您的XAML.你不需要DataTemplate
你的ListBoxItem.Resources
,你可以直接SelectedItem
在你的<ListBox>
标签中设置
<ListView ItemsSource="{Binding Path=Records}" IsSynchronizedWithCurrentItem="True"
SelectedItem="{Binding SelectedRecord}" SelectionMode="Single">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsKeyboardFocusWithin" Value="True">
<Setter Property="IsSelected" Value="True"/>
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListView.View>
<GridView>
<GridViewColumn>
<TextBox ... Tag="{Binding}".../>
</GridViewColumn>
<GridViewColumn>
<TextBox ... Tag="{Binding}".../>
</GridViewColumn>
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
4071 次 |
最近记录: |