我使用的是Telerik的c#.NET 4.5和WPF RadControls。
在我的MainWindow
上有一个RadTabControl
,在后面的代码中,像这样绑定我的MainViewModel
:
this.DataContext = new MainViewmodel();
ItemSource
的RadTabControl
在XAML中绑定: <telerik:RadTabControl ... ItemsSourc={Binding Tabs} .. />
我还使用
ContentSelector
将不同的内容加载到选项卡。这些内容是UserControls
。在一个UserControl
上,我使用一个RadGRidView
及其自己的ItemsSource
,并将其绑定在后面的代码中:TestGridView.ItemsSource = Tasks.GetTasks();
RadGridView Columns
绑定到它自己的样式: <telerik:RadGridView.Columns>
<telerik:GridViewDataColumn DataMemberBinding="{Binding ID}" Width="*" CellStyle="{StaticResource CellStyle}" />
</telerik:RadGridView.Columns>
<Style x:Key="CellStyle" TargetType="{x:Type telerik:GridViewCell}">
<Setter Property="BorderThickness" Value="0" />
<Setter Property="BorderBrush" Value="{x:Null}" />
<Setter Property="Template">
<Setter.Value>
<ControlTemplate>
<Border BorderBrush="#f2f2f2" BorderThickness="0,0,0,2" Padding="0,5,0,5">
<StackPanel Orientation="Horizontal">
<StackPanel Orientation="Vertical" Margin="10,0,0,0" VerticalAlignment="Top">
<TextBlock Text="{Binding Titel}" />
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Start}" Foreground="#9fa2ae"/>
<TextBlock Text=" XXX - XXX " />
<TextBlock Text="{Binding Startzeit}" Foreground="#9fa2ae" />
<telerik:RadButton Height="30" Content="Right Button" Command="{Binding AddTabCommand}" CommandParameter="Tab9999"/>
</StackPanel>
</StackPanel>
</StackPanel>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
问题是
RadButton
不会触发我的DelegateCommand
的MainViewModel
。我在RadGridView
中的UserControl中也有相同的Button,效果很好。请有人告诉我如何解决
RadButton
中的RadGridView
问题吗?非常感谢
最好的祝福
RR
PS:我有一个简单的项目,但无法附加它
最佳答案
发生这种情况的原因是,RadButton上的绑定试图在按钮的DataContext而不是父窗口的DataContext上找到AddTabCommand。
要解决此问题,我建议在Window资源中设置样式,而不要使用以下样式:
Command="{Binding AddTabCommand}"
给窗口命名,并使用它:
Command="{Binding ElementName=windowName, Path=DataContext.AddTabCommand}"
关于c# - 在Telerik RadGridView中传递DataContext,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27502330/