Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/272.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何从CS文件访问生成的XAML项_C#_Xaml - Fatal编程技术网

C# 如何从CS文件访问生成的XAML项

C# 如何从CS文件访问生成的XAML项,c#,xaml,C#,Xaml,我有一个datagridviewD中填充了行L,每个行都包含一个扩展器E, 每一行L都是根据数据库中的数据创建的 每个扩展器E可以用我数据库中另一个表中的几行li填充 当我单击扩展器中的一行li时,所选项目将是包含扩展器E的原始行L,因此我无法清楚地识别我单击了哪一行li。 我无法在这些行li上加上名称,因为它们都是生成的,并且都具有相同的名称 要删除行li或编辑其中的一些数据,我放置了两个小图标(带图片的椭圆),并有一个“OnMouseLeftButtonUp”事件,它几乎充当“OnClick

我有一个datagridviewD中填充了行L,每个行都包含一个扩展器E, 每一行L都是根据数据库中的数据创建的 每个扩展器E可以用我数据库中另一个表中的几行li填充

当我单击扩展器中的一行li时,所选项目将是包含扩展器E的原始行L,因此我无法清楚地识别我单击了哪一行li。 我无法在这些行li上加上名称,因为它们都是生成的,并且都具有相同的名称

要删除行li或编辑其中的一些数据,我放置了两个小图标(带图片的椭圆),并有一个“OnMouseLeftButtonUp”事件,它几乎充当“OnClick”事件。 单击椭圆后,我想访问直线li和其中的所有数据,但我不太知道怎么做

请原谅,我不能发送任何代码,因为某些代码可能是“机密”性质的


通常,您可以向上遍历备份逻辑树,以到达您想要去的地方。例如,我有一个非常类似的示例,其中我在数据网格中嵌入了一个图标,它捕获用户交互。我最终在事件处理程序中执行以下操作:

(((sender as Image)?.DataContext as DataRecord)?.DataItem as MyViewModelForThisRecord)
因此,在不太详细地分析您给出的特定场景的情况下,我只需在事件处理程序中设置一个断点,然后查看如何浏览它公开的属性,以及如何访问视图模型(我相信您也可以通过文档筛选来解决这个问题,但我经常发现,更直接的方法是只检查发送者的属性,速度更快)

总而言之,你需要两件事:

  • 数据网格的视图模型(在我的例子中,这是视图的DataContext,但我认为这可能并不总是正确的)
  • 要删除的记录的视图模型。这通常可以通过向上遍历树找到

  • 然后只需从用于填充数据网格的任何列表(从视图模型1)中删除项目(2)。

    感谢您的耐心等待。
    最后,我将DataGrid.selectedCell.Item属性转换为一行L, 并使用该ligne中包含的ID在我的数据库中查找它, 然后,我使用了一些独特的属性来定义行li,以达到我想要的目的。

    如果我正确地描述了我的问题,解决这个问题可能会更简单,但英语不是我的第一语言,我有点难以描述我的问题。

    作为旁注,即使你有机密代码,如果你能演示一个,也会很有帮助。在这种情况下,我认为只需要10-15分钟就可以完成一个示例应用程序,并显示您正在使用的层次结构。也就是说,我很高兴根据所提供的信息提供我所能提供的任何见解。我理解这可能很难获得我想要做的事情以及如何在没有代码的情况下解决问题,如果我有其他问题,我将尝试创建一个示例。感谢您的回答,我将尽快尝试a I can b但这可能要等到下周一,我尝试做了一些其他事情来澄清我的想法,但遇到了另一个问题,所以现在我将尝试解决当前的问题。祝您愉快!如果这对我有效,我会将您的答案标记为已接受,别担心,我不会忘记