这个简单的WPF-DataGrid
<DataGrid AutoGenerateColumns="False" Height="300" HorizontalAlignment="Stretch"
VerticalAlignment="Stretch" Name="dgOriginal" Margin="4,12,0,0"
CanUserAddRows="False" CanUserDeleteRows="False" CanUserReorderColumns="False" IsSynchronizedWithCurrentItem="True"
CanUserSortColumns="False" SelectionMode="Single" SelectionUnit="FullRow">
<DataGrid.Columns>
<DataGridCheckBoxColumn x:Name="col2Checked"/>
<DataGridTextColumn x:Name="col2Name"/>
<DataGridTextColumn x:Name="col2Vorname"/>
</DataGrid.Columns>
Run Code Online (Sandbox Code Playgroud)
它显示了一个没有问题的绑定列表,在获得焦点时表现得很奇怪:首先,用户选择了一行,这使得datagrid以选定的方式显示该行(SelectedItem和CurrentItem包含所选对象) .然后重点关注另一个控件.在此状态 - 仍然显示选择 - 当CurrentItem为null时,SelectedItem仍然存在!然后通过使用TAB-Button重新调整焦点.这使得CurrentItem成为第一个在SelectedItem未更改时显示的对象.因此,CurrentItem不会与SelectetItem一起处于可在DataGrid中看到的状态.而且我觉得自己有什么好处......
我的qustion是:如何建议DataGrid具有在焦点丢失之前选择的相同CurrentItem?如何同步CurrentItem和SelectedItem?
我希望有一个简单的解决方案!你会帮助我很多.提前致谢...
下面的XAML基本上是尝试创建一个Buttons 列表(从当前集合中Name对象的属性呈现).ViewsDataContext
当我单击按钮时,CurrentItem属性CollectionViewSource应该更改,关联View应该显示在内容呈现器中.
好.如果我点击ListBox下面的XAML,它可以完全按照要求工作.
但是,如果单击UniformGrid(由项目控件创建)中的按钮,CurrentItem则不会更新该属性.
如何CurrentItem在ItemsControl?中选择项目时更新?
谢谢
<UserControl x:Class="Pos.Features.Reservation.ReservationView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:product="clr-namespace:Pos.Features.ProductBrowser"
xmlns:activity="clr-namespace:Pos.Features.ActivityBrowser"
xmlns:addbysku="clr-namespace:Pos.Features.AddBySku"
xmlns:client="clr-namespace:Pos.Features.ClientBrowser"
xmlns:notes="clr-namespace:Pos.Features.Notes"
xmlns:controls="clr-namespace:Pos.Views"
xmlns:res="clr-namespace:Pos.Core;assembly=Pos.Core"
Height="300" Width="300">
<UserControl.Resources>
<DataTemplate DataType="{x:Type product:ProductBrowserViewModel}">
<product:ProductBrowserView/>
</DataTemplate>
<DataTemplate DataType="{x:Type activity:ActivityBrowserViewModel}">
<activity:ActivityBrowserView/>
</DataTemplate>
<CollectionViewSource x:Name="x" x:Key="ViewsCollection" Source="{Binding Views}" />
</UserControl.Resources>
<StackPanel>
<ListBox Name="ListBoxMenu" Grid.Column="0" Margin="5" ItemsSource="{Binding Source={StaticResource ViewsCollection}}">
<ListBox.ItemTemplate>
<DataTemplate>
<TextBlock Text="{Binding Name}" Padding="10"/>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
<ContentControl Grid.Column="1" Content="{Binding …Run Code Online (Sandbox Code Playgroud) data-binding wpf itemscontrol collectionviewsource currentitem