【发布时间】:2018-10-19 02:26:18
【问题描述】:
我正在使用DataGrid 控件开发时间线应用程序,但我找不到在单元格中插入和绑定Canvas 控件的方法。我应该使用其他控件吗?
<UserControl x:Class="Timelines.Controls.TimelineViewer2"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:local="clr-namespace:Timelines.Controls"
mc:Ignorable="d"
d:DesignHeight="450" d:DesignWidth="800">
<Grid>
<DataGrid Name="TimelineGrids" AutoGenerateColumns="False">
<DataGrid.Columns>
<DataGridTextColumn Header="Item" Binding="{Binding Name}"/>
<DataGridTemplateColumn Header="Timeline" CanUserResize="True">
<DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Canvas Name="TimelineCanvas"></Canvas>
</DataTemplate>
</DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>
</DataGrid.Columns>
</DataGrid>
</Grid>
【问题讨论】:
-
这里有什么问题?你的意思是你不能把
Canvas放在DataGrid单元格的正确位置?请显示代码以帮助解释问题。 -
我添加了我当前的示例代码。现在,我想添加行并访问每个“画布”以绘制时间线。
-
但是您想从后面的代码中执行这些操作,但您无法访问画布,这是您的问题吗?
-
@Kaspar:是的,这是我的问题,但正如 kennyzx 所说,在
DataGrid单元格内访问控件似乎很困难,或者可能是不可能的。 -
@carlos,可以从后面的代码访问
Canvas,见How to: Find DataTemplate-Generated Elements,但是你还有其他问题,所以我不推荐这种方式。跨度>
标签: c# wpf data-binding datagrid