この非常に単純な例を作成しました。これは、TreeView と Button を持つ Window です。ボタンをクリックすると、選択したアイテムが表示されますが、機能していません。選択を変更しても CurrentItem プロパティは更新されません。
C#:
using System.Collections.ObjectModel;
using System.Windows;
using System.Windows.Data;
namespace TreeViewSort
{
public partial class Window1
{
private ObservableCollection<string> _items;
public ListCollectionView SortedItems { get; private set; }
public Window1()
{
InitializeComponent();
}
private void Window_Loaded(object sender, RoutedEventArgs e)
{
_items =new ObservableCollection<string>();
_items.Add("ZZ");
_items.Add("AA");
_items.Add("CA");
_items.Add("DA");
_items.Add("EA");
this.SortedItems = new ListCollectionView(_items);
this.DataContext = this;
}
private void Button_Click(object sender, RoutedEventArgs e)
{
MessageBox.Show(this.SortedItems.CurrentItem.ToString());
}
}
}
XAML:
<Window x:Class="TreeViewSort.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="300" Width="300" Loaded="Window_Loaded">
<DockPanel>
<TreeView DockPanel.Dock="Top" Name="treeView1" ItemsSource="{Binding SortedItems, Mode=TwoWay}" MinHeight="200" />
<Button DockPanel.Dock="Bottom" Click="Button_Click">
Test
</Button>
</DockPanel>
</Window>
MSDNのドキュメントによると
ターゲットが ItemsControl の場合、現在のアイテムは選択されたアイテムと同期されます
なぜこれが機能しないのですか?
前もって感謝します。