gpt4 book ai didi

c# - 在 Telerik RadGridView 中传递 DataContext

转载 作者:太空宇宙 更新时间:2023-11-03 15:47:27 25 4
gpt4 key购买 nike

我使用 Telerik 的 c# .NET 4.5 和 WPF RadControls。

在我的 MainWindow 上,我有一个 RadTabControl,在我后面的代码中,我像这样绑定(bind)我的 MainViewModel:

 this.DataContext = new MainViewmodel();

RadTabControlItemSource 绑定(bind)在 XAML 中:

 <telerik:RadTabControl ... ItemsSourc={Binding Tabs} .. />

我还使用 ContentSelector 将不同的内容加载到我的选项卡。这些内容是 UserControls。在一个 UserControl 上,我使用了一个 RadGRidView 和它自己的 ItemsSource,我在后面的代码中绑定(bind)了它:

TestGridView.ItemsSource = Tasks.GetTasks();

RadGridView Columns 绑定(bind)到它自己的样式:

 <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 没有触发我的 MainViewModelDelegateCommand。我在 RadGridView 的 UserControl 中也有相同的按钮,效果很好。

有人能告诉我如何解决 RadGridView 中的 RadButton 问题吗?

非常感谢此致RR

PS:我有一个简单的项目,但是不能附上它

最佳答案

发生这种情况的原因是您的 RadButton 上的绑定(bind)试图在按钮的 DataContext 上找到 AddTabCommand,而不是父窗口。

要解决这个问题,我建议在 Window 的资源中设置样式,而不是使用它:

Command="{Binding AddTabCommand}"

给窗口一个名字,然后使用这个:

Command="{Binding ElementName=windowName, Path=DataContext.AddTabCommand}"

关于c# - 在 Telerik RadGridView 中传递 DataContext,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27502330/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com