【发布时间】:2016-11-02 03:01:44
【问题描述】:
在 WPF ComboBox 中,我需要能够显示绑定的 ItemsSource 集合中不存在的 SelectedValue。
我已经进行了大量搜索,到目前为止我发现的唯一解决方案是绑定到 Text 属性并设置 IsEditable="True" .我确实在我的应用程序的另一部分使用了它,但在这里不起作用,因为我不能冒用户提供无效数据的风险。
在 XAML 中,ItemsSource 绑定到可用 WorkEfforts 的 ObservableCollection。该列表可能会随着时间的推移而更改,其中项目会从列表中删除。 SelectedValue 绑定到数据网格 Title.WorkEffort 上 SelectedItem 的属性。标题是一项单独的任务或更改,分配了工作量。一旦分配给标题,它就不应更改,即使工作成果不再有效。
XAML:
<ComboBox ItemsSource="{Binding Path=WorkEfforts}"
SelectedValue="{Binding Path=Title.WorkEffort}"
DisplayMemberPath="WorkEffortString"
SelectedValuePath="WorkEffortString"
IsEnabled="{Path=EditMode}"/>
C# 代码:
ObservableCollection<WorkEffort> WorkEfforts = client.GetWorkEfforts();// Gets a list of all active work efforts from database
public class WorkEffort
{
public int WorkEffortID { get; set; }
public string WorkEffortString { get; set; }
public string ChargeNumber { get; set; }
}
ChangeTitle Title { get; set;} //SelectedItem on a DataGrid whose ItemsSource is an ObservableCollection of ChangeTitles
public class ChangeTitle
{
public int CommentID { get; set; }
public int ChangeID { get; set; }
public int TitleID { get; set; }
public string WorkEffort { get; set; }
}
任何帮助将不胜感激。谢谢!
【问题讨论】: