在 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 { 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; }
}
Run Code Online (Sandbox Code Playgroud)
任何帮助,将不胜感激。谢谢!
小智 5
您可以将 Text 属性与 IsEditable="True" 和 IsReadOnly="True" 一起使用
这里还有另一种方法如何在 WPF 页面加载的组合框中显示默认文本“--Select Team --”?
| 归档时间: |
|
| 查看次数: |
2277 次 |
| 最近记录: |