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

时间:2011-08-22 11:24:28

标签: c# wpf xaml autocomplete styles

我有一个关于将Xaml转换为C#的问题,我使用自动完成Box Tab命令无法正常工作在那意味着首先我们移动所有控件然后我继续自动完成Box我通过xaml代码解决这个问题

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

现在在另一个我使用全部控制动态所以没有Xaml那里为自动完成我的所有工作是完整但我面对相同的选项卡订单问题如何从C#转换上面的Xaml代码

ctrl = new AutoCompleteBox { FontSize = 14, MaxDropDownHeight = 90 };
//Here We need to Implement That Style
ctrl.TabIndex = c.TabOrder;
ctrl.MaxWidth = 200;
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();
}

请帮助我表示感谢和问候

Shashank Tyagi

3 个答案:

答案 0 :(得分:1)

有一个应用程序可以执行此操作,即 XamlT 。 在 WPF / SL应用上,您可以在某些方面使用XAML或C#/ VB.NET 代码(例如,创建故事板或设置图像源)。 / p>

祝你好运

答案 1 :(得分:0)

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;

答案 2 :(得分:0)

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();
    }
}

此守则完美运作