Как следует из названия, я хочу добавить статический элемент в dataBound ComboBox.Комбобокс со статическими и динамическими данными вместе в wpf
Я указал this сообщение.
Databinding выпадающий:
<ComboBox Name="comboBox1" Width="Auto" ItemsSource="{Binding}" />
Добавление статических элементов в выпадающем списке:
<ComboBox Text="Is not open">
<ComboBoxItem Name="cbi1">Item1</ComboBoxItem>
<ComboBoxItem Name="cbi2">Item2</ComboBoxItem>
<ComboBoxItem Name="cbi3">Item3</ComboBoxItem>
</ComboBox>
Ведение выше вещи вместе с помощью CompositeCollection:
<ComboBox>
<ComboBox.Items>
<CompositeCollection>
<CollectionContainer Collection="{Binding Source={...whatever...}" />
<ComboBoxItem Name="cbi1">Item1</ComboBoxItem>
<ComboBoxItem Name="cbi2">Item2</ComboBoxItem>
<ComboBoxItem Name="cbi3">Item3</ComboBoxItem>
</CompositeCollection>
</ComboBox.Items>
</ComboBox>
Но приведенные выше примеры не решить мою проблему.
Я хочу добавить статический элемент к DataBound ComboBox , в котором я использую DataTemplate
Вот мой код для DataBound ComboBox (я не знаю, как добавить статические элементы):
<ComboBox x:Name="cbUnder" ItemsSource="{Binding GroupsAndCorrespondingEffects}"
IsEditable="True" SelectedItem="{Binding SelectedGroup, Mode=TwoWay}"
TextSearch.TextPath="GroupName" Grid.Column="1" Grid.ColumnSpan="4" Grid.Row="3">
<ComboBox.ItemTemplate>
<DataTemplate>
<VirtualizingStackPanel Orientation="Horizontal">
<TextBlock Text="{Binding GroupName}" Width="250"/>
<TextBlock Text="{Binding CorrespondingEffect}" />
</VirtualizingStackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
</ComboBox>
Дополнение по просьбе aks81:
Вот код для GroupsAndCorrespondingEffects
public GroupsViewModel()
{
using (DBEntities db = new DBEntities())
{
GroupsAndCorrespondingEffects = (from g in db.Groups
select new GroupAndCorrespondingEffect
{
GroupName = g.Name,
CorrespondingEffect = g.Type_Effect.Name
}
).ToList().OrderBy(g => g.GroupName);
Items = (from e in db.Type_Effect
select e.Name).ToList();
}
}
public static GroupsViewModel CurrentInstance { get { return Instance; } }
private IEnumerable<GroupAndCorrespondingEffect> _groupsAndCorrespondingEffects;
public IEnumerable<GroupAndCorrespondingEffect> GroupsAndCorrespondingEffects
{
get
{
return _groupsAndCorrespondingEffects;
}
set
{
_groupsAndCorrespondingEffects = value;
OnPropertyChanged("GroupsAndCorrespondingEffects");
}
}
На самом деле, я немного смущен. Что вы подразумеваете под статическими элементами? Проблема не в том, что я не понимаю ваших намерений, но так как вы уже назначили 'ItemsSource'. Неясно, почему и что вы хотите добавить дополнительно. – DHN
Да, я уже назначил ItemsSource. Этот элемент ItemsSource получит данные из базы данных. Но я хочу добавить элемент до заполнения данных из базы данных. – Khushi
Вместо добавления 'ComboBoxItem' с помощью' xaml', почему бы вам не добавить его в коллекцию 'GroupAndCorrespondingEffects'? Также переместите «VirtualizingStackPanel» с «ItemTemplate» на «ItemsPanel». Использовать сетку в 'DataTemplate' – Sandesh