C# 列表框清单SelectedItem返回空值

C# 列表框清单SelectedItem返回空值,c#,wpf,data-binding,C#,Wpf,Data Binding,我想创建一个列表框,从中可以通过复选框选择元素。它通过数据绑定从数据库获取元素。这些项目出现在列表框中,但当我发送表单时,隐藏的代码没有收到SelectedItem值 列表框的XAML部分如下所示: <Grid x:Name="grMozik" Visibility="Visible" Margin="0,0,0,0" DataContext="{Binding}" Grid.Row="3" Grid.ColumnSpan="2"> <ListBox Name="lbM

我想创建一个列表框,从中可以通过复选框选择元素。它通过数据绑定从数据库获取元素。这些项目出现在列表框中,但当我发送表单时,隐藏的代码没有收到SelectedItem值

列表框的XAML部分如下所示:

<Grid x:Name="grMozik" Visibility="Visible" Margin="0,0,0,0" DataContext="{Binding}" Grid.Row="3" Grid.ColumnSpan="2">
    <ListBox Name="lbMozik" Margin="15" Width="300" Height="200" ItemsSource="{Binding}">
        <ListBox.ItemContainerStyle>
            <Style TargetType="{x:Type ListBoxItem}">
                <Setter Property="Focusable" Value="False"/>
            </Style>
        </ListBox.ItemContainerStyle>
        <ListBox.ItemTemplate>
            <DataTemplate>
                <CheckBox Content="{Binding MoziNeve}" />
            </DataTemplate>
        </ListBox.ItemTemplate>
    </ListBox>
</Grid>
string text = ((ListBoxItem)lbMozik.SelectedItem).Content.ToString();
MessageBox.Show(text2);

ListBox.SelectedItem
来自一个
ListBoxItem
,它的
IsSelected
属性设置为
true
。如果要通过复选框进行选择,请将每个复选框绑定到所有者
ListBoxItem.IsSelected

<CheckBox Content="{Binding MoziNeve}"
          IsChecked="{Binding IsSelected, RelativeSource={RelativeSource AncestorType=ListBoxItem}}"/>


ListBox.SelectedItem
不是一个
ListBoxItem
,它是一个数据对象,除了数据对象是一个
ListBoxItem
@Rekshino之外,它也可以是ListBoxItem(当Items集合充满ListBoxItems时),正如我写的“数据对象是ListBoxItem”创建并发布一个。