У меня есть сценарий, в котором древовидная структура динамически меняет шаблон данных и определение привязки данных.Я создал древовидное представление в XAML следующим образом:
<TreeView x:Name="BimTreeView">
</TreeView>
Я не определил шаблон данных и определение привязки в XAML.Поскольку шаблон данных и определение привязки должны быть изменены в соответствии с предпочтениями пользователя.
Я попробовал следующий код C #, который нашел здесь , чтобы динамически создать определение шаблона данных.Однако, глядя на следующий код, я не мог понять, как изменить определение привязки данных с помощью кода C # .
private DataTemplate GetHeaderTemplate()
{
//create the data template
DataTemplate dataTemplate = new DataTemplate();
//create stack pane;
FrameworkElementFactory stackPanel = new FrameworkElementFactory(typeof(StackPanel));
stackPanel.Name = "parentStackpanel";
stackPanel.SetValue(StackPanel.OrientationProperty, Orientation.Horizontal);
// Create check box
FrameworkElementFactory checkBox = new FrameworkElementFactory(typeof(CheckBox));
checkBox.Name = "chk";
checkBox.SetValue(CheckBox.NameProperty, "chk");
checkBox.SetValue(CheckBox.TagProperty, new Binding());
checkBox.SetValue(CheckBox.MarginProperty, new Thickness(2));
checkBox.SetValue(CheckBox.TagProperty, new Binding() { Path = new PropertyPath("Name") });
stackPanel.AppendChild(checkBox);
// Create Image
FrameworkElementFactory image = new FrameworkElementFactory(typeof(Image));
image.SetValue(Image.MarginProperty, new Thickness(2));
image.SetBinding(Image.SourceProperty, new Binding() { Path = new PropertyPath("ImageUrl") });
stackPanel.AppendChild(image);
// create text
FrameworkElementFactory label = new FrameworkElementFactory(typeof(TextBlock));
label.SetBinding(TextBlock.TextProperty, new Binding() { Path = new PropertyPath("Name") });
label.SetValue(TextBlock.ToolTipProperty, new Binding());
stackPanel.AppendChild(label);
//set the visual tree of the data template
dataTemplate.VisualTree = stackPanel;
return dataTemplate;
}
Я был бы очень признателен, если бы кто-то мог объяснить, как я могуизменить шаблон данных и связать иерархические данные древовидной структуры в коде C #.
Спасибо !!