0

我正在像这样填充我的 WPF ComboBox

foreach (Function fx in XEGFunctions.GetAll())
{
    ComboBoxItem item = new ComboBoxItem();
    item.Content = fx.Name;
    item.ToolTip = fx.Signature;               
    //item.( some property ) = fx.FunctionValue;
    cmbBoxTransformation.Items.Add(item);
}
cmbBoxTransformation.SelectedIndex = 0;

如何为每个 ComboBoxItem 设置一些不同的值。

4

4 回答 4

4

如果您要设置的值仅在后端使用,而不向用户显示,则 Tag 属性可能是您最好的选择。

item.Tag = fx.FunctionValue;
于 2012-05-21T05:25:07.600 回答
2

两种选择

  1. 您可以从 ComboBoxItem 创建派生类型,并在派生类型中定义属性。

  2. 您可以创建任意项目集合(使用您的自定义属性),并将 ComboBox.ItemsSource 设置为该集合,并将 DisplayMemberPath 设置为需要在组合框中显示的字段。

绑定组合框以显示源和绑定源

SelectedValue 和 DisplayMemberPath 如何挽救了我的生命

于 2012-05-21T05:27:32.347 回答
1

这个小勾可能会帮助某人

<ComboBox SelectedIndex="1" SelectedValuePath="Tag"  SelectedValue="{Binding SampleDept,Mode=OneWayToSource}" >
                                <ComboBoxItem Content="8-bit" Tag="8"  ></ComboBoxItem>
                                <ComboBoxItem Content="16-bit" Tag="16" ></ComboBoxItem>
                                <ComboBoxItem Content="24-bit" Tag="24"></ComboBoxItem>
                                <ComboBoxItem Content="32-bit" Tag="32"></ComboBoxItem>
                            </ComboBox>
public class SampleModel{

   public int SampleDept{

            get { return _sampleDept; }
            set {
                
                _sampleDept = value;
            OnPropertyChanged("SampleDept");
            }
        }
}
于 2014-10-10T15:45:42.140 回答
0
var listItems = val.Split('$');
DataTemplate dt = new DataTemplate();
var combo = new FrameworkElementFactory(typeof(ComboBox));
combo.SetValue(ComboBox.ItemsSourceProperty, listItems);
combo.SetValue(ComboBox.SelectedValueProperty, "Whatever");
combo.SetBinding(ComboBox.SelectedValueProperty, new Binding("Value") { Source = mkvc });
dt.VisualTree = combo;
dt.Seal();

将此添加到您想要添加组合框的任何编辑器模板中 => mkvc 是一个用于保存我的数据的类

PropertyDefinition pd = new PropertyDefinition();
pd.EditorTemplate = dt;
//rpg =>radPropertyGrid
rpg.PropertyDefinitions.Add(pd);
rpg.Item = propertyList;

propertylist 是 myclass 的列表

于 2018-06-10T10:45:26.783 回答