我有以下列表框
<Page.DataContext>
<self:NewUserViewModel/>
</Page.DataContext>
<ListBox x:Name="PermissionLbox" ItemsSource="{Binding ListFromDataContext}" Height="75" Margin="10,117,10,0" VerticalAlignment="Top">
<ListBox.ItemTemplate>
<DataTemplate>
<CheckBox Content="{Binding .}"></CheckBox>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
为什么如果我将 CheckBox 定义更改为:
<CheckBox Command={Binding CommandFromDataContext} Content="{Binding .}"></CheckBox><CheckBox Content="{Binding .}"></CheckBox>
尽管 NewUserViewModel 中存在 CommandFromDataContext,但无法解析名称 CommandFromDataContext。 ListFromDataContext 是 NewUserViewModel 和 Command 的属性,但 Command 未解析。
最佳答案
复选框的数据上下文不再是 View 模型,而是它在列表框中实例化的单个项目。
您需要绑定(bind)到 RelativeSource 和 Path 才能再次访问 ViewModel。
参见 existing answer了解详情。
关于c# - WPF ListBox 项目命令绑定(bind),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37750504/