gpt4 book ai didi

c# - 如何在 LookupEdit (Devexpress) 中获取 GridControl 的实例

转载 作者:太空宇宙 更新时间:2023-11-03 11:34:54 26 4
gpt4 key购买 nike

没什么好说的,只是想要我有 LookUpEdit 的 DXGrid 实例。我正在使用 WPF。

mylookupedit1.GridControl <-- ???

编辑:

下面是一些示例代码:

 <UserControl.Resources>
<ControlTemplate x:Key="gridTemplate">
<dxg:GridControl x:Name="PART_GridControl">
<dxg:GridControl.View>
<dxg:TableView Name="view"
AutoWidth="False"
BestFitMode="AllRows"
BestFitArea="All"
AllowBestFit="True"/>
</dxg:GridControl.View>
</dxg:GridControl>
</ControlTemplate>
</UserControl.Resources>
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"/>
<RowDefinition Height="6"/>
<RowDefinition Height="auto "/>
</Grid.RowDefinitions>

<dxe:ButtonEdit Grid.Row="0" Name="beSearch"/>
<dxg:LookUpEdit Grid.Row="2" Name="leLookUp"

ShowSizeGrip="True"
SelectedIndex="0"
AutoPopulateColumns="True"

IsPopupAutoWidth="True"

ItemsSource="{Binding}"
PopupMaxWidth="600"
PopupContentTemplate="{StaticResource gridTemplate}"
/>

</Grid>

在我的代码中我有:

 private void mymethod(IEnumerable itemsSource)
{
leLookUp.ItemsSource = itemsSource;
object o = leLookUp.FindParentOfType<GridControl>();
// o is null
// how could i access PART_GridControl ???
}

最佳答案

您应该能够只使用 GetGridControl 函数。

DevExpress GetGridControl Link

否则(最好是上面的工作)你可以使用下面的,我在一些需要找到 parent 等的地方使用它。

        private static DependencyObject FindParent(this DependencyObject obj, Predicate<DependencyObject> where)
{
var parent = VisualTreeHelper.GetParent(obj);

if (parent == null || where(parent))
{
return parent;
}

return parent.FindParent(where);
}

public static T FindParentOfType<T>(this DependencyObject obj) where T : DependencyObject
{
return (T) FindParent(obj, x => x is T);
}

那么你就可以走了:

var grid = mylookupedit1.FindParentOfType<GridControl>();

编辑:

我误解了这里的问题是另一种获取 child 的方法。

我以前尝试过很多不同的方法来做到这一点,但是没有一个奏效,我尝试过遍历所有子项等等。但是没有一个真正得到 GridControl。所以我们所做的是:

在 GridControl 的声明中,添加一个 Loaded 事件:

<dxg:GridControl Name="PART_GridControl" Loaded="LoadedEvent">

然后在后面的代码中,创建一个变量来存储网格:

private GridControl theGridInTheControlTemplate;

然后您可以实现 LoadedEvent 处理程序:

private void LoadedEvent(object sender, RoutedEventArgs e)
{
theGridInTheControlTemplate = (GridControl)sender;
}

现在您可以在代码中使用 GridInTheControlTemplate。

我知道它看起来不太干净,但这是我发现它起作用的唯一方法。

希望对您有所帮助,理查德

关于c# - 如何在 LookupEdit (Devexpress) 中获取 GridControl 的实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6612435/

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