2013-08-07 127 views
1

我用一些字段和刪除按鈕構建UserControl。 這個UserControl我想在ListBox的DataTemplate中使用。列表框中的WPF用戶控件,綁定ICommand到ViewModel

Window.xaml:

<ListBox ItemsSource="{Binding Users}"> 
    <ListBox.ItemTemplate> 
    <DataTemplate> 
     <WrapPanel> 
      <my:User x:Name="user1" /> 
     </WrapPanel> 
    </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

在包含列表框伊夫窗口的視圖模型創建一個ICommand用於該用戶控件的DeleteButton。

UserControl.xaml:

<UserControl x:Name="ucUsers" .....>  
    <TextBlock Text="{Binding LastSeen}" Width="140"/> 
    <Button Content="Delete" 
      IsEnabled="{Binding CanUserDelete}" 
      Command="{Binding ElementName=ucUsers, Path=DataContext.DeleteCurrentUser}"> 
    </Button> 

爲什麼不能達到視圖模型的DeleteCurrentUser?

保羅

+0

爲什麼你需要的命令,如果你有你的德爾布頓在UserControl.Just使用上刪除你想要做的del.What的按鈕單擊事件點擊? – Vishal

+0

嘗試'Command =「{綁定DataContext.DeleteCurrentUser,RelativeSource = {RelativeSource AncestorType = ListBox}}」'。 – LPL

回答

1
<Button Content="Delete" 
     IsEnabled="{Binding CanUserDelete}" 
     Command="{Binding Path=DataContext.DeleteCurrentUser, RelativeSource={RelativeSource Mode=FindAncestor, AncestorType={x:Type Window}}}"> 
+0

只是一個小細節,不得不刪除「ElementName = ucUsers」, –

+0

是的它不應該在那裏。我只是複製粘貼你的代碼並編輯它。謝謝 – ethicallogics

相關問題