Theres уже размещает о получении элемента treeview, и они не применимы ко мне, мой XAML построен по-другому, мое древовидное изображение завернуто в кнопки, поэтому, когда я щелкните любой элемент дерева, я хочу «messagebox.show (выбранный путь к древовидной структуре) в порядке? это легко понять? другие методы, которые я гугле не работает для меня, потому что я уже попробовал их, я бы вновь работать мой код, чтобы заставить его работать, но я не хочу этого, вот XAML:Простой, быстрый способ получить элемент treeview, другие методы did not работают для меня
<TreeView x:Name="FolderView" ItemsSource="{Binding Items}" Background="#FF3D3C3C" Margin="0,0,285.667,-0.333">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsExpanded" Value="{Binding IsExpanded, Mode=TwoWay}">
</Setter>
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate DataType="{x:Type local:item}" ItemsSource="{Binding Children}">
<Button Command="{Binding Source={x:Static local:MainWindow.ClickCommand}}"
CommandParameter="{Binding}">
<StackPanel Orientation="Horizontal" Visibility="{Binding}">
<Image Source="{Binding Type,
Converter={x:Static local:HeaderToImageConverter.Instance}}" Width="20" Margin="3"></Image>
<TextBlock VerticalAlignment="Center" Text="{Binding Name}"></TextBlock>
</StackPanel>
</Button>
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
здесь кнопка нажмите:
public static RoutedUICommand ClickCommand = new RoutedUICommand("ClickCommand", "ClickCommend", typeof(MainWindow));
public MainWindow()
{
this.InitializeComponent();
this.DataContext = new DirectoryStructureViewModel();
CommandBindings.Add(new CommandBinding(ClickCommand, OnClickCommand, OnCanClickCommand));
var i11 = new item() { Name = "aaaa aaaa" };
var i12 = new item() { Name = "bbbb bbbb" };
var i21 = new item() { Name = "cccc cccc" };
var i22 = new item() { Name = "dddd dddd" };
var i0 = new item() { Name = "I1", Children = new List<item>() { i11, i12 } };
var i1 = new item() { Name = "I1", Children = new List<item>() { i21, i22 } };
this.FolderView.ItemsSource = new List<item>() { i0, i1 };
}
private void OnCanClickCommand(object sender, CanExecuteRoutedEventArgs e)
{
e.CanExecute = true;
}
private void OnClickCommand(object sender, ExecutedRoutedEventArgs e)
{
MessageBox.Show(((item)e.Parameter).Name);
}
ошибка: «не удается разрешить символ„элемент“
Где проблема? – Ron
@Ramin Я не знаю, я просто хочу окно с сообщением, которое я выбрал ... – Ozymandias