1 つのモジュールに Prism と mvvm アーキテクチャを備えた wpf アプリケーションがあり、ツリービューがあり、他のモジュールにテキストボックスがあります。両方のモジュールが正しく読み込まれています。私がやりたいことは、ツリービューノードをクリックします。-ビューモデルで現在選択されているオブジェクトを設定します。-また、イベント(または何か他のもの)を発生させ、ノード値を他のモジュールのテキストボックスに設定します
最初の 2 点は正常に機能しています。その 3 番目は私が理解できません。
これが私のツリービューコードです。
<TreeView Name="TreeViewTest" Grid.Row="1" Grid.Column="0" ItemsSource="{Binding Path= TestObservable}">
<TreeView.ItemContainerStyle>
<Style TargetType="{x:Type TreeViewItem}">
<Setter Property="IsSelected" Value="{Binding IsSelected}" />
</Style>
</TreeView.ItemContainerStyle>
<TreeView.ItemTemplate>
<HierarchicalDataTemplate ItemsSource="{Binding Children}">
<TextBlock Text="{Binding Name}" Tag="{Binding Id}" />
</HierarchicalDataTemplate>
</TreeView.ItemTemplate>
</TreeView>
選択したオブジェクトを設定しているコード。
private bool _selected = false;
public bool IsSelected
{
get
{
return _selected;
}
set
{
if (_selected == value) return;
_selected = value;
NotifyPropertyChanged("IsSelected");
this._selectedItem = this;
RaisePropertyChanged(() => Name);
}
}
ビューモデル isSelected は、ツリービュー モジュールを実際にバインドするメイン ビューモデルの子ビューモデルです。
なので以下の通り
public interface ITreeViewModel
{
ITreeViewModelView { get; }
ObservableCollection<IChildTreeViewModel> TestObservable{ get; set; }
}
どんな助けでも素晴らしいでしょう