gpt4 book ai didi

c# - RadGridView 模板选择器

转载 作者:行者123 更新时间:2023-11-30 17:09:41 26 4
gpt4 key购买 nike

我正在使用 RadGridView 在网格中显示一堆项目。对于每个项目,我想根据给定的数据在两个不同的模板之间切换。一个是本质上弹出文本 block 的依赖属性,另一个是另一个用于显示表格的 RadGridView。

静态放置时,它们都单独工作,但我想动态选择这两个不同的模板。但是,我的选择器没有被调用,因此没有使用模板。

资源:

<Window.Resources>
<DataTemplate x:Key="theBasicView">
<controls:InfoDetailsControl InfoDetail="{Binding InfoDetails}" />
</DataTemplate>

<DataTemplate x:Key="theTableView">
<telerik:RadGridView ItemsSource="{Binding DetailsTable}" />
</DataTemplate>

<analysis:DetailsTemplateSelector
BasicView="{StaticResource theBasicView}"
TableView="{StaticResource theTableView}"
x:Key="detailsTemplateSelector"
/>
</Window.Resources>

以及有问题的模板选择器:

<telerik:RadGridView.RowDetailsTemplate>
<DataTemplate>
<ItemsControl
ItemTemplateSelector="{StaticResource detailsTemplateSelector}"
/>
</DataTemplate>
</telerik:RadGridView.RowDetailsTemplate>

如果是 BasicView,则 DetailsTable 应该为空。否则,它应该是一个 TableView。这是我的 DetailsTemplateSelector:

public class DetailsTemplateSelector : DataTemplateSelector
{
public DataTemplate BasicView { get; set; }
public DataTemplate TableView { get; set; }

public override DataTemplate SelectTemplate(object item, DependencyObject container) {
FrameworkElement element = container as FrameworkElement;
if (element != null && item != null && item is ViewableRuleResult)
{
ViewableRuleResult ruleResult = item as ViewableRuleResult;
Window window = Application.Current.MainWindow;

if (ruleResult.DetailsTable == null)
{
return BasicView;
}
else
{
return TableView;
}
}
return null;
}
}

SelectTemplate 函数中放置断点永远不会命中。为什么我的 DetailsTemplateSelector 永远不会被调用?我感觉我的 RowDetailsTemplate 中的模板选择器不正确。如果您需要更多详细信息或不清楚的地方,请告诉我。

谢谢!

最佳答案

修复它。原来 RadGridView 有一个属性 RowDetailsTemplateSelector。使用以下 XAML:

<telerik:RadGridView x:Name="resultsgrid"
RowDetailsTemplateSelector="{StaticResource detailsTemplateSelector}"
ItemsSource="{Binding ViewableItems}"
AutoGenerateColumns="False"
Margin="0,0,0,30"
IsReadOnly="True"
>

并且完全删除了之前定义的RowDetailsTemplate,它现在可以正常运行了。

关于c# - RadGridView 模板选择器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12749662/

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