我創建的ObservableCollection:的ObservableCollection綁定到一個ComboBox
public ObservableCollection<Tool> toolList = new ObservableCollection<Tool>();
而且我設置的DataContext在構造函數中:
public MainWindow()
{
InitializeComponent();
DataContext = toolList;
}
實際:
public MainWindow()
{
InitializeComponent();
DataContext = this;
}
清單市民:
public ObservableCollection<Tool> ToolList
{
get { return toolList; }
}
如何我的對象添加到列表:
private void buttonAdd_Click(object sender, RoutedEventArgs e)
{
InputDialog input = new InputDialog();
input.ShowDialog();
inputNewTool = input.enteredTxt;
if (inputNewTool != null)
{
System.Windows.Forms.MessageBox.Show("Chose the Tool's directory");
dlg.DefaultExt = ".exe";
dlg.Filter = "Application (.exe)|*.exe";
if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
Tool tool = new Tool();
tool.Name = inputNewTool;
tool.Path = dlg.FileName;
toolList.Add(tool);
}
}
}
我想,只有Toolobject的名字顯示在下拉框中。 XAML:
<ComboBox ItemsSource="{Binding Path= ToolList}" DisplayMemberPath="Name"
SelectedValuePath ="Name" SelectedValue="{Binding Path=ToolList}" Height="22"
Name="comboBoxTools" Width="185" IsEditable="False" />
編輯:現在的XAML顯示如此:
<ComboBox ItemsSource="{Binding Path= ToolList,
UpdateSourceTrigger=PropertyChanged}" DisplayMemberPath="Name"
Toolclass:
public class Tool
{
public string Name { get; set; }
public string Path { get; set; }
public Tool() { }
}
我什麼也看不到在ComboBox。爲什麼?這些工具已成功添加到Collection中。 我生氣
你'SelectedValue'被綁定到作爲你的'ItemsSource'相同的路徑。這似乎很腥。 – nvoigt
我刪除選定的值和選定的路徑,但這不會解決問題:/ – LittleProgrammer