В настоящее время у меня есть класс myCommand
class myCommand : INotifyCollectionChanged , INotifyPropertyChanged
{
public string Name { get; set; }
public ObservableCollection<myFile> subCommand { get; set; }
}
У меня есть два элемента TreeView в моем окне. tvCommandList , который содержит все доступные команды и tvFinalList для хранения всех выбранных команд.
Я использовал contextmenu для копирования элементов из tvCommandList в tvFinalList ; В главном окне у меня есть два элемента ObservableCollection, которые связаны с TreeViewItems.
ObservableCollection<myCommand> cmdlist = null;
ObservableCollection<myCommand> finallist = null;
Они связаны с TreeView в файле XAML.
<Grid>
<Grid.Resources>
<ResourceDictionary>
<Style x:Key="styleTemplate" TargetType="TreeViewItem">
<Setter Property="IsSelected" Value="{Binding IsInitiallySelected, Mode=TwoWay}" />
</Style>
<HierarchicalDataTemplate DataType="{x:Type data:myCommand}"
ItemsSource="{Binding subCommand, Mode=TwoWay}">
<TextBlock Text="{Binding Name, Mode=TwoWay}" />
</HierarchicalDataTemplate>
</ResourceDictionary>
</Grid.Resources>
</Grid>
<TreeView x:Name="tvSendList" ItemsSource="{Binding}" DataContext="{Binding cmdlist}">
<TreeView x:Name="tvRecvList" ItemsSource="{Binding}" DataContext="{Binding finallist}">
Я копирую TreeViewItem из cmdlist до финалист и отредактируйте их для таможенных данных. Проблема, с которой я здесь сталкиваюсь, заключается в том, что, если я изменяю элемент (обновите значение Name ) в finallist , элемент cmdlist также обновляется, что я Я не уверен, как go собирается решить эту проблему.
Я пытался переместить ResourceDictionary для каждого TreeView отдельно, но все еще сталкивался с той же проблемой