Compile Error: Window does not contain definition for template, even though template is defined. WPF C#
Compile Error: Window does not contain definition for template, even though template is defined. WPF C#
我正在尝试根据某些条件切换数据网格的模板,但即使我定义了一个模板,程序也无法编译,说我的 window 不包含上述的定义模板。
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;
这似乎是一个 "just restart Visual Studio" 问题,但这并没有帮助。在尝试 运行 程序之前我没有收到任何错误,将鼠标悬停在 "myGrid" 上表明它将它识别为 scrollWin 的成员。有什么想法吗?
ControlTemplate
应定义为 资源 和 x:Key
而不是 x:Name
:
<ControlTemplate TargetType="DataGrid" x:Key="myGrid">
如果您随后放入 gridMain
的 Resources
字典(<Grid.Resources>
或 grdMain
的任何类型),您可以像这样获得对它的引用:
scrollWin.gridMain.Template = scrollWin.gridMain.Resources["myGrid"] as ControlTemplate;
模板本身的定义看起来有点奇怪,但这是另一个问题。
我正在尝试根据某些条件切换数据网格的模板,但即使我定义了一个模板,程序也无法编译,说我的 window 不包含上述的定义模板。
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;
这似乎是一个 "just restart Visual Studio" 问题,但这并没有帮助。在尝试 运行 程序之前我没有收到任何错误,将鼠标悬停在 "myGrid" 上表明它将它识别为 scrollWin 的成员。有什么想法吗?
ControlTemplate
应定义为 资源 和 x:Key
而不是 x:Name
:
<ControlTemplate TargetType="DataGrid" x:Key="myGrid">
如果您随后放入 gridMain
的 Resources
字典(<Grid.Resources>
或 grdMain
的任何类型),您可以像这样获得对它的引用:
scrollWin.gridMain.Template = scrollWin.gridMain.Resources["myGrid"] as ControlTemplate;
模板本身的定义看起来有点奇怪,但这是另一个问题。