2016-06-10 85 views
1

我得到了下面的列表框中WPF列表框項命令結合

<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 Command={Binding CommandFromDataContext} Content="{Binding .}"></CheckBox><CheckBox Content="{Binding .}"></CheckBox> 

名CommandFromDataContex雖然CommandFromDataContext在NewUserViewModel存在不能得到解決。 ListFromDataContext是NewUserViewModel,Command的一個屬性,但Command未解析。

回答

3

複選框的datacontext不再是viewmodel,而是它在實例列表框中的單個項目。

您需要綁定到RelativeSource和Path以再次訪問ViewModel。詳情請參閱existing answer

+0

我是WPF的新手,你能展示一個示例代碼嗎? – igorr

+1

我附加了一個鏈接。例如,請參閱最高票數的答案。 –