Sam*_*med 2 wpf datacontext observablecollection
在这个问题我问了一下添加TabItems动态到TabControl
的ItemsSource来自ObservableCollection<Village>..我的问题是,如果添加一个按钮,任何TabItem,此按钮将有DataContext其容器的TabItem,我怎么能实现此按钮的Click事件?
如果您已将Button添加到DataTemplate,那么在Button_Click方法上,您可以轻松获取'Village'datacontext.
void Button_Click(object sender, RoutedEventArgs e)
{
Village clickedVillage = ((Button)sender).DataContext as Village;
//Do whatever you want to do with the Village
}
Run Code Online (Sandbox Code Playgroud)
但同样,上述解决方案并不是解决此问题的最佳方法.MVVM模式会在你的Village(或它的容器类)中期望一个ICommand,你将该命令绑定到Button.Command属性,因此根本不会有任何代码隐藏.或者换句话说,您的XAML将更加清晰,ViewModel将在属性和操作方面获得更多自包含.