Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 将ListBoxItem的IsSelected属性绑定到Itemssource的DataContext_C#_Wpf_Xaml - Fatal编程技术网

C# 将ListBoxItem的IsSelected属性绑定到Itemssource的DataContext

C# 将ListBoxItem的IsSelected属性绑定到Itemssource的DataContext,c#,wpf,xaml,C#,Wpf,Xaml,我有一个定义了Itemssource的列表框: <ListBox x:Name="ModuleListBox" DockPanel.Dock="Top" ItemsSource="{Binding MenuItems}"> <ListBox.ItemContainerStyle> <Style TargetType="ListBoxItem"> <Setter Property="Is

我有一个定义了Itemssource的列表框:

 <ListBox
    x:Name="ModuleListBox"
    DockPanel.Dock="Top"
    ItemsSource="{Binding MenuItems}">
    <ListBox.ItemContainerStyle>
       <Style TargetType="ListBoxItem">
           <Setter Property="IsSelected" Value="{Binding IsSelected}" />
       </Style>
   </ListBox.ItemContainerStyle>
 </ListBox>
我的列表框所在视图的ViewModel如下所示:

public class MenuItemViewModel : BaseViewModel
{
    private bool isSelected;
    public bool IsSelected 
    { 
        get { return isSelected; }  
        set { SetProperty(ref isSelected, value); } 
    }
}
public class ShellViewModel : BaseViewModel
{
    public ObservableCollection<MenuItemViewModel> MenuItems
    {
        get { return menuItems; }
        set { SetProperty(ref menuItems, value); }
    }
}
公共类ShellViewModel:BaseViewModel
{
公共可观测集合菜单项
{
获取{return menuItems;}
set{SetProperty(ref menuItems,value);}
}
}
我的问题是如何将ListBoxItem的IsSelected属性绑定到MenuItemViewModel项目对象的Selected属性?


<ListBox
    x:Name="ModuleListBox"
    DockPanel.Dock="Top"
    ItemsSource="{Binding MenuItems}">
    <ListBox.ItemContainerStyle>
       <Style TargetType="ListBoxItem">
           <Setter Property="IsSelected" Value="{Binding RelativeSource={RelativeSource Self}, Path=DataContext.IsSelected}" />
       </Style>
   </ListBox.ItemContainerStyle>
 </ListBox>

设置listbox的选定项目属性

    SelectedItem="{Binding Path=SelectedMenuItem, Mode=TwoWay}"
还要在ShellViewModel中创建SelectedMenuItem


SelectedItem from ListBox不是布尔值,因此如果您真的想将其绑定到menuitem,则必须编写IValueConvertor。

您现在的代码有什么问题?您没有提供可靠地再现问题的产品,也没有说明存在任何具体问题。你发布的一点点代码没有明显的错误。那么,你的问题是什么?