在Items控件中获取所选项目

时间:2015-07-10 14:38:32

标签: c# wpf

我知道Items Control中没有选定的项属性 所以我试图通过命令参数来做这些事情:

 <ItemsControl ItemsSource="{Binding Vrapper.myVM.Names}" x:Name="NamesCtr">
                                <ItemsControl.ItemTemplate>
                                    <DataTemplate>
                                        <MenuItem Header="{Binding}">
                                            <MenuItem.ItemContainerStyle>
                                                <Style TargetType="{x:Type MenuItem}">
                                                    <Setter Property="Command" Value="{Binding ElementName=NamesCtr, Path=DataContext.Vrapper.myVM.LoadCommand}"/>
                                                    <Setter Property="CommandParameter" Value="{Binding}" />
                                                </Style>
                                            </MenuItem.ItemContainerStyle>
                                        </MenuItem>
                                    </DataTemplate>
                                </ItemsControl.ItemTemplate>
                            </ItemsControl> 

命令不起作用=(

在myVM中有:

...
loadCommand = new VrapCommand(load);
...

public void load(Object obj)
{
    string chosenName = obj as string;
}

如果我将尝试以下DataTemplate:

<DataTemplate>
    <MenuItem Header="{Binding}" Command="{Binding ElementName=NamesCtr,   Path=Path=DataContext.Vrapper.myVM.LoadCommand}"/>
</DataTemplate>

命中加载函数(该命令正在运行),但我需要将此参数(所选菜单项的名称)传递给函数。

0 个答案:

没有答案