如何从C#代码设置WPF组合框项的值
我像这样填充我的WPF组合框如何从C#代码设置WPF组合框项的值,c#,.net,wpf,xaml,controls,C#,.net,Wpf,Xaml,Controls,我像这样填充我的WPF组合框 foreach (Function fx in XEGFunctions.GetAll()) { ComboBoxItem item = new ComboBoxItem(); item.Content = fx.Name; item.ToolTip = fx.Signature; //item.( some property ) = fx.FunctionValue; cmbBoxTransfo
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设置不同的值。如果您要设置的值仅用于后端,而不显示给用户,则Tag属性可能是您的最佳选择
item.Tag = fx.FunctionValue;
两种选择
这只小虱子可能会帮助别人
<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>
将此添加到编辑器模板中,您可以将combobox添加到其中=>mkvc是一个用于保存我的数据的类
PropertyDefinition pd = new PropertyDefinition();
pd.EditorTemplate = dt;
//rpg =>radPropertyGrid
rpg.PropertyDefinitions.Add(pd);
rpg.Item = propertyList;
propertylist是myclass的列表,但是如果我有值,我想在运行时显示选择的相应项,其值是这个(一些文本),那么我认为它不会起作用。您可以使用linq查询快速找到它,我不完全清楚您想从您的问题中做什么,好吧,我将迭代LINQ查询,以选择一个特定项,该项在运行时具有值
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();
PropertyDefinition pd = new PropertyDefinition();
pd.EditorTemplate = dt;
//rpg =>radPropertyGrid
rpg.PropertyDefinitions.Add(pd);
rpg.Item = propertyList;