0

このようにWPFComboBoxにデータを入力しています

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

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 に答える