【问题标题】:WPF Binding to comboboxWPF 绑定到组合框
【发布时间】:2017-03-15 11:21:42
【问题描述】:

我有 Tab 所在的选项卡列表:

public class Tab
{
  public int Id {get; set;}
  public string Name {get; set}
  public List<country> Country {get; set;} 

}

现在,我想将它绑定到两个组合框: 第一个组合框没问题,但第二个我想显示国家/地区列表。

 <custom:ComboBox  Title="Tab" 
               ItemsSource="{Binding Tabs, Mode=TwoWay}"
               ValuePath="Id"
               Value="{Binding Model.Id, Mode=TwoWay}"
               DisplayPath="Name"
               IsEnabled="{Binding IsEnabled, Mode=TwoWay}"/>


 <custom:ComboBox  Title="Country" 
                SelectedItem="{Binding Model.Country, Mode=TwoWay}"
                ItemsSource="{}" 
                DisplayPath="CountryName"
                IsEnabled="{Binding IsEnabled, Mode=TwoWay}"/>

当我知道 Id 时,如何在第二个组合框中设置 ItemsSource。 是不是创建变量的另一种方法,比如 selectedList 然后绑定到它?

编辑

我正在创建新对话框,我正在发送带有标签 ID 的模型,并且对话框上下文有标签列表。

【问题讨论】:

    标签: c# wpf combobox


    【解决方案1】:

    将您的第一个 ComboBox 命名为 x:Name="FirstComboBox" 并更改您的第二个 ComboBox to ItemsSource="{Binding ElementName=FirstComboBox, Path=SelectedItem.Country}"ItemsSource

    提示:在 xaml 中绑定集合时使用 ObservableCollection&lt;T&gt; 而不是 List&lt;T&gt;

    【讨论】:

    • 只有当我从第一个组合框中手动选择值时,才会重新加载第二个组合框。当我自动绑定时,第二个组合框为空,然后我必须先从组合框中选择值,然后第二个组合框有值。我应该使用 UpdateSourceTrigger = PropertyChanged 还是什么
    • 要更新第二个组合框,我必须先点击进入。如何自动更新第二个组合框?
    • 自动是什么意思?
    • 我的意思是我将 Id 绑定到组合框值路径并且它可以,但是第二个组合框是空的,然后我必须将点击返回到第一个组合框,现在第二个组合框有值。
    • 当您的第二个组合框为空时,是否在第一个组合框中选择了某些内容?如果是:您是如何在第一个组合框中选择条目的?
    猜你喜欢
    • 1970-01-01
    • 2012-06-18
    • 2011-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多