Ankith
Ankith

Reputation: 157

Convet XAML to VB.NET

I am trying to convert XAML to equivalent VB.Net code. I am unable to figure out how to add Combobox to DataTrigger.

        <Style x:Key="SystemFieldsCellValuePresenter" TargetType="{x:Type igDP:CellValuePresenter}">
        <Style.Triggers>
            <DataTrigger Binding="{Binding Path=DataItem.FieldType}" Value="Boolean">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <igEditors:XamComboEditor Name="lstCombo1" />                             
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=DataItem.FieldType}" Value="Text">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate>
                            <igEditors:XamTextEditor>
                                <igEditors:XamTextEditor.ValueConstraint>
                                    <igEditors:ValueConstraint MaxLength="100"></igEditors:ValueConstraint>
                                </igEditors:XamTextEditor.ValueConstraint>
                            </igEditors:XamTextEditor>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
            <DataTrigger Binding="{Binding Path=DataItem.FieldType}" Value="Dropdown">
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate x:Name="ctlTemplate1">
                            <igEditors:XamComboEditor Name="lstCombo2" />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </DataTrigger>
        </Style.Triggers>
    </Style>

This is where I am currently, Not sure what is correct and what is wrong.

Dim cellStyle = New System.Windows.Style()
cellStyle.TargetType = GetType(Infragistics.Windows.DataPresenter.CellValuePresenter)
Dim _dataTrigger = New DataTrigger()
_dataTrigger.Value = "Dropdown"
Dim template As New DataTemplate()

Dim style As New System.Windows.Style
style.TargetType = GetType(XamComboEditor)
Dim bsetter1 As New Setter
bsetter1.Property = XamComboEditor.ItemsSourceProperty
bsetter1.Value = If(dt Is Nothing, Nothing, dt.DefaultView())
Dim bsetter2 As New Setter
bsetter2.Property = XamComboEditor.DisplayMemberPathProperty
bsetter2.Value = "displayField"
style.Setters.Add(bsetter2)
Dim bsetter3 As New Setter
bsetter3.Property = XamComboEditor.ValuePathProperty
bsetter3.Value = "valueField"
style.Setters.Add(bsetter3)
template.Resources.Add("cboStyle", style)
_dataTrigger.Setters.Add(New Setter(TemplateProperty, template))

cellStyle.Triggers.Add(_dataTrigger)
_dataTrigger = New DataTrigger()
_dataTrigger.Binding = New System.Windows.Data.Binding() With {.Path = New PropertyPath("Record.DataItem.FieldType"),
                                                                   .RelativeSource = RelativeSource.Self}
_dataTrigger.Value = "Text"
_dataTrigger.Setters.Add(New Setter(TextBox.TextProperty, ""))

cellStyle.Triggers.Add(_dataTrigger)

There are no comilation or runtime errors, but out is not as expected. Any help is appreciated. Thanks

PS: I am new to WPF. So, if I am wrong with my approach, I request you me lead to a direction to achieve this.

Also, this style is supposed to be applied on a DataGrid cell.

Upvotes: 0

Views: 215

Answers (0)

Related Questions