Treeview selectedItem在启动时突出显示

时间:2015-12-21 14:46:09

标签: c# wpf xaml treeview

我的xaml中有一个树视图,如下所示。我通过使用交互性来使用所选项目并绑定事件。

    <DataTemplate x:Key="TreeTemplate">
        <TreeView Name="TreeView" ItemsSource="{Binding ItemList}" ItemTemplate="{StaticResource ChildTemplate}">
            <i:Interaction.Triggers>
                <i:EventTrigger EventName="SelectedItemChanged">
                    <i:InvokeCommandAction
                        Command="{Binding SetSelectedItemCommand}"
                        CommandParameter="{Binding SelectedItem, ElementName=TreeView}"/>
                </i:EventTrigger>
            </i:Interaction.Triggers>
        </TreeView>
    </DataTemplate>

除非第一次加载应用程序,否则这一切都非常有效。即使在启动时设置了SelectedItem属性,树视图也不会突出显示项目,除非触发导致SelectedItemChanged事件的鼠标事件。 关于如何做到这一点的任何想法?

我的datacontext位于xaml

之后的代码中
        myView = new MyViewModel();    
        this.DataContext = myView;

        InitializeComponent();

1 个答案:

答案 0 :(得分:0)

这将有效:

<DataTemplate x:Key="TreeTemplate">
    <TreeView Name="TreeView" ItemsSource="{Binding ItemList}" ItemTemplate="{StaticResource ChildTemplate}">
        <i:Interaction.Triggers>
            <i:EventTrigger EventName="SelectedItemChanged">
                <i:InvokeCommandAction
                    Command="{Binding SetSelectedItemCommand}"
                    CommandParameter="{Binding SelectedItem, ElementName=TreeView}"/>

             <i:EventTrigger EventName="Loaded">
                <i:InvokeCommandAction
                    Command="{Binding SetSelectedItemCommand}"
                    CommandParameter="{Binding SelectedItem, ElementName=TreeView}"/>
            </i:EventTrigger>
        </i:Interaction.Triggers>
    </TreeView>
</DataTemplate>