【发布时间】:2020-04-13 20:56:49
【问题描述】:
我正在尝试根据某些条件切换数据网格的模板,但即使我定义了模板,程序也无法编译,说我的窗口不包含所述模板的定义。
XAML
<ControlTemplate TargetType="DataGrid" x:Name="myGrid">
<DataGrid>
<DataGrid.Columns>
<DataGridTextColumn Header="ID" Binding="{Binding ID}"></DataGridTextColumn>
<DataGridTextColumn Header="Tag" Binding="{Binding Tag}"></DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
</ControlTemplate>
C#
if (mybool == true)
scrollWin.gridMain.Template = scrollWin.myGrid;
这似乎是一个“只需重新启动 Visual Studio”的问题,但这并没有帮助。在尝试运行程序之前,我没有收到任何错误,将鼠标悬停在“myGrid”上表明它将其识别为 scrollWin 的成员。有什么想法吗?
【问题讨论】:
-
你把
ControlTemplate放在哪里了?这是资源,不是吗?而gridMain是什么元素? -
我只是把控制模板放到Datagrid里面我要改的那个模板就是gridMain。
-
究竟在什么元素里面?
-
直接在数据网格内部,而不是样式或资源或任何东西。
<DataGrid Name="gridMain"> <ControlTemplate Name=myGrid....etc -
这毫无意义。它应该被定义为一种资源。看我的回答。
标签: c# wpf datagrid controltemplate