繁体   English   中英

如何在Devexpress GridControl中的EditTemplate中获取控件的引用

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM