如何将Xaml代码转换为C#(WPF中的Setter属性)

如何将Xaml代码转换为C#(WPF中的Setter属性),c#,wpf,xaml,autocomplete,styles,C#,Wpf,Xaml,Autocomplete,Styles,我在将Xaml转换为C#时遇到了一个问题,我使用的自动完成框选项卡顺序不能正常工作,这意味着首先我们移动所有控件,最后我继续自动完成框,我正在通过Xaml代码解决这个问题 <ToolKit:AutoCompleteBox.TextBoxStyle> <Style TargetType="TextBox"> <Setter Property="TabIndex" Value="{Binding ElementNa

我在将Xaml转换为C#时遇到了一个问题,我使用的自动完成框选项卡顺序不能正常工作,这意味着首先我们移动所有控件,最后我继续自动完成框,我正在通过Xaml代码解决这个问题

<ToolKit:AutoCompleteBox.TextBoxStyle>
    <Style TargetType="TextBox">
        <Setter Property="TabIndex"
                Value="{Binding ElementName=txtFirstName, Path=TabIndex}"/>
    </Style>
</ToolKit:AutoCompleteBox.TextBoxStyle>

现在在另一个例子中,我使用的是All Control Dynamic,所以没有Xaml自动完成我的所有工作,但我面临着同样的制表符顺序问题,如何从C转换上面的Xaml代码#

ctrl=newautocompletebox{FontSize=14,MaxDropDownHeight=90};
//在这里,我们需要实现这种风格
ctrl.TabIndex=c.TabOrder;
ctrl.MaxWidth=200;
if(c.SpName!=null&&c.DisplayMember!=null)
{
DataTable dt=sqlHelper.ExecuteSelectProcedure(c.SpName);
var cmb=ctrl作为自动完成框;
cmb.ItemsSource=dt.AsEnumerable().Select(r=>r.Field(c.DisplayMember)).ToList();
}
请帮帮我谢谢和问候


Shashank Tyagi

有一个应用程序可以做到这一点,它是。 在WPF/SL应用程序上,可以在某些方面使用XAML或C#/VB.NET代码(例如,创建情节提要或设置图像源)

致以最诚挚的问候

如果(c.Type==typeof(AutoCompleteBox))
var style = new Style(typeof(TextBox));
var binding = new Binding("TabIndex") { ElementName = "txtFirstName" };
var setter = new Setter(TextBox.TabIndexProperty, binding);
style.Setters.Add(setter);
ctrl.TextBoxStyle = style;
{ //var style=新样式(typeof(TextBox)); ctrl=new AutoCompleteBox{FontSize=14,MaxDropDownHeight=90,Name=c.ControlID}; ctrl.TabIndex=c.TabOrder; ctrl.MaxWidth=200; var style=新样式(typeof(TextBox)); var binding=new binding(“TabIndex”){ElementName=c.ControlID}; var setter=新setter(TextBox.TabIndexProperty,binding); style.setter.Add(setter); (ctrl作为自动完成框)。TextBoxStyle=style; if(c.SpName!=null&&c.DisplayMember!=null) { DataTable dt=sqlHelper.ExecuteSelectProcedure(c.SpName); var cmb=ctrl作为自动完成框; cmb.ItemsSource=dt.AsEnumerable().Select(r=>r.Field(c.DisplayMember)).ToList(); } }

这段代码非常有效

我在上面的Xaml中还有一个查询。。。默认情况下,自动完成框的ISTABSTOP属性为True……如果我将其设置为false并删除样式,则它可以正常工作,然后我可以完美地移动制表符,但在自动完成框上,光标不会出现
var style = new Style(typeof(TextBox));
var binding = new Binding("TabIndex") { ElementName = "txtFirstName" };
var setter = new Setter(TextBox.TabIndexProperty, binding);
style.Setters.Add(setter);
ctrl.TextBoxStyle = style;
else if (c.Type == typeof(AutoCompleteBox))
{
    //var style = new Style(typeof(TextBox));
    ctrl = new AutoCompleteBox { FontSize = 14, MaxDropDownHeight = 90, Name = c.ControlID };
    ctrl.TabIndex = c.TabOrder;
    ctrl.MaxWidth = 200;

    var style = new Style(typeof(TextBox));
    var binding = new Binding("TabIndex") { ElementName = c.ControlID };
    var setter = new Setter(TextBox.TabIndexProperty, binding);
    style.Setters.Add(setter);
    (ctrl as AutoCompleteBox).TextBoxStyle = style;

    if (c.SpName != null && c.DisplayMember != null)
    {
        DataTable dt = sqlHelper.ExecuteSelectProcedure(c.SpName);
        var cmb = ctrl as AutoCompleteBox;
        cmb.ItemsSource = dt.AsEnumerable().Select(r => r.Field<string>(c.DisplayMember)).ToList();
    }
}