我有一个组合框,显示来自ObservableCollection(包含多个目录链接)的项目。 然后我有几个树视图和数据表,所有这些都需要根据组合框选择引用目录。我知道我在过去看到过一个类似的问题,从那以后就找不到它了!任何方向都将不胜感激!
例如,集合的内容是:
public class ProjectThread
{
public String projectName { get; set; }
public String Directory1 { get; set; }
public String Directory2 { get; set; }
public String Directory3 { get; set; }
}
现在我试图弄清楚如何从单个组合框选择中检索多个值路径:
<ComboBox x:Name="comboBox"
HorizontalAlignment="Left"
ItemsSource="{Binding Items}"
DisplayMemberPath="projectName"
SelectedValuePath="Directory1"/> (**How to reference multiple?)
以下是我的树视图的初始化方式:
public MainWindow()
{
InitializeComponent();
this.ListDirectory(treeView1, **unsure how to reference directory from combobox**");
this.ListDirectory(treeView2, **unsure how to reference directory from combobox**");
}
这是我的树视图后端:
private void ListDirectory(TreeView treeView, string path)
{
treeView.Items.Clear();
var rootDirectoryInfo = new DirectoryInfo(path);
treeView.Items.Add(CreateDirectoryNode(rootDirectoryInfo));
}
private static TreeViewItem CreateDirectoryNode(DirectoryInfo directoryInfo)
{
var directoryNode = new TreeViewItem { Header = directoryInfo.Name };
foreach (var directory in directoryInfo.GetDirectories())
directoryNode.Items.Add(CreateDirectoryNode(directory));
foreach (var file in directoryInfo.GetFiles())
directoryNode.Items.Add(new TreeViewItem { Header = file.Name });
return directoryNode;
}
至于#34;复制线程&#34;评论,我认为情况并非如此。该链接指的是数据网格选择。我的问题是关于组合框选择,其项目有多个属性。我的问题是如何从XAML中的相同选择中提取多个属性。
答案 0 :(得分:0)
我找到了问题的答案。我很难找到这个解决方案,所以在这里以防任何人遇到同样的麻烦!
而不是使用SelectedValuePath ...我可以通过这样做绑定到我的选择的多个属性:
Treeview#1
ItemsSource="{Binding ElementName =comboBox, Path=SelectedItem.Directory1, UpdateSourceTrigger=PropertyChanged}"
Treeview#2
ItemsSource="{Binding ElementName =comboBox, Path=SelectedItem.Directory2, UpdateSourceTrigger=PropertyChanged}"
Treeview#3
ItemsSource="{Binding ElementName =comboBox, Path=SelectedItem.Directory3, UpdateSourceTrigger=PropertyChanged}"