Reputation: 157
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