![](/img/trans.png)
[英]How to display a RepositoryItemHyperLinkEdit control inside a DevExpress GridControl
[英]How to get reference of control inside EditTemplate in Devexpress GridControl
我正在开发devexpress GridControl。 我在GridColumn的EditTemplate内有列。 如何在C#中获取Combobox的引用。
我尝试使用EditTemplate.LoadContent(),但是它给了我新的实例。 我想要相同的实例,所以我可以更改几个值。
任何帮助深表感谢。
<dxg:GridColumn.CellTemplate>
<DataTemplate>
<controls:ComboBox Name="PART_Editor" ItemsSource="{Binding RowData.Row.TransportModeTypes}" DisplayMember="Value" ValueMember="Key" Background="Transparent" ToolTip="Enter Transport Mode" />
</DataTemplate>
</dxg:GridColumn.CellTemplate>
您总是可以直接在Visual Tree中找到ComboBox。 像这样:
private IEnumerable<T> GetVisualChildren<T>(DependencyObject parent) where T : Visual
{
T child = default(T);
int numVisuals = VisualTreeHelper.GetChildrenCount(parent);
for (int i = 0; i < numVisuals; i++)
{
Visual v = (Visual)VisualTreeHelper.GetChild(parent, i);
child = v as T;
if (child == null)
{
foreach (var item in GetVisualChildren<T>(v))
{
yield return item;
}
}
if (child != null)
{
yield return child;
}
}
}
private void Button_Click(object sender, RoutedEventArgs e)
{
GetVisualChildren<ComboBox>(dataGrid).ToList().ForEach(c => c.SelectedItem = null);
}
或者,您可以实现并附加行为:
public class MyComboBoxBehavior : Behavior<GridViewBase>
{
protected override void OnAttached()
{
base.OnAttached();
GridControl gridControl = AssociatedObject.Grid;
// Logic for combobox handling goes here
}
}
<dxg:GridControl>
<dxg:GridControl.View>
<dxg:TableView>
<i:Interaction.Behaviors>
<local:MyComboBoxBehavior/>
</i:Interaction.Behaviors>
</dxg:TableView>
</dxg:GridControl.View>
</dxg:GridControl>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.