在 WPF ComboBox 中,我需要能够显示绑定的ItemsSource集合中不存在的SelectedValue。
我已经进行了大量的搜索,到目前为止我找到的唯一解决方案是绑定到Text属性并设置IsEditable ="True"。我确实在应用程序的另一部分使用了它,但这在这里不起作用,因为我不能冒用户提供无效数据的风险。
在 XAML 中,ItemsSource绑定到可用 WorkEffort 的 ObservableCollection。该列表可能会随着时间的推移而发生变化,项目会从列表中删除。SelectedValue绑定到数据网格上的 SelectedItem 属性 Title.WorkEffort。标题是一项单独的任务或变更,分配有工作量。一旦分配给标题,即使工作不再活跃,它也不应该改变。
XAML:
<ComboBox ItemsSource="{Binding Path=WorkEfforts}"
SelectedValue="{Binding Path=Title.WorkEffort}"
DisplayMemberPath="WorkEffortString"
SelectedValuePath="WorkEffortString"
IsEnabled="{Path=EditMode}"/>
Run Code Online (Sandbox Code Playgroud)
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 { …Run Code Online (Sandbox Code Playgroud)