English 中文(简体)
叠叠两个组合框 - 未选择当前值的子子组合框
原标题:Cascading two comboboxes - Child Combobox not selecting current value
  • 时间:2012-05-25 11:33:02
  •  标签:
  • wpf
  • wpf-4.0

<强度 > 问题摘要

当使用 2 个堆叠组合框时, 子组合框不选择当前项目, 而不是空项( 我不知道它是从哪里来的!) 被选中 。

<强度 > 问题细节

我以 xaml 中声明了两个组合框, 如下所示 。 正在玩的两个实体是 < 坚固 > StandardRack < / 坚固 > 和 < 坚固 > RelayConfig

<强>XAML:

<ComboBox ItemsSource="{Binding StandardRacks}" DisplayMemberPath="Name"
          SelectedItem="{Binding StandardRack, Mode=TwoWay}"  SelectedValuePath="Id"

<ComboBox ItemsSource="{Binding RelayConfigs}" DisplayMemberPath="DisplayName" 
          SelectedValue="{Binding DefaultRelayConfig, Mode=TwoWay}" SelectedValuePath="Id"

以下是支持属性, 以及在 ViewModel 中装入组合框的代码

< 强度 > ViewModel

private ObservableCollection<StandardRack> _standardRacks;
public ObservableCollection<StandardRack> StandardRacks {
    get { return _standardRacks; }
    set { _standardRacks = value; RaisePropertyChanged(() => StandardRacks); }
}

private StandardRack _standardRack;
public StandardRack StandardRack {
    get { return _standardRack; }
    set {
        if (_standardRack != value) {
            _standardRack = value;
            LoadRelayConfigs();
            RaisePropertyChanged(() => StandardRack);
        }
    }
}

private ObservableCollection<RelayConfig> _relayConfigs;
public ObservableCollection<RelayConfig> RelayConfigs {
    get { return _relayConfigs; }
    set { _relayConfigs = value; RaisePropertyChanged(() => RelayConfigs); }
}

private RelayConfig _defaultRelayConfig;
public RelayConfig DefaultRelayConfig {
    get { return _defaultRelayConfig; }
    set { _defaultRelayConfig = value; RaisePropertyChanged(() => DefaultRelayConfig); }
}

private void LoadRack() {
    StandardRacks = new ObservableCollection<StandardRack>(
                    unitOfWork.StandardRackRepository.GetQueryable().Include(sr => sr.StandardRelay).ToList());
    if (StandardRacks.Count > 0) {
        StandardRack = Rack.StandardRack; //Set the current value of StandardRacks combobox
    }
}

//Loads RelayConfigs Combobox based on Current Value of StandardRacks Combobox

private void LoadRelayConfigs() {
    RelayConfigs = new ObservableCollection<RelayConfig>(
        unitOfWork.RelayConfigRepository.GetQueryable()
        .Where(rc => rc.StandardRelays.Any(srl => srl.Id == StandardRack.StandardRelay.Id)).ToList());
    DefaultRelayConfig = Rack.DefaultRelayConfig; //Set Current Value of RelayConfigs Combobox. Does not work.
}

上述代码正确装入组合框( StandardRacks 和 RelayConfigs) 的项目。 但是, 中继 Configs 选中的值没有被设定为 XAML 指向的值。 相反, 我得到一个空项作为当前项目在 RelayConfigs 组合框中 。

问题回答

默认 RelayConfig 是否是中继Config 选择的一部分?





相关问题
WPF convert 2d mouse click into 3d space

I have several geometry meshes in my Viewport3D, these have bounds of (w:1800, h:500, d:25). When a user clicks in the middle of the mesh, I want the Point3D of (900, 500, 25)... How can I achieve ...

Editing a xaml icons or images

Is it possible to edit a xaml icons or images in the expression design or using other tools? Is it possible to import a xaml images (that e.g you have exported) in the expression designer for editing?...

WPF: writing smoke tests using ViewModels

I am considering to write smoke tests for our WPF application. The question that I am faced is: should we use UI automation( or some other technology that creates a UI script), or is it good enough to ...

WPF - MVVM - NHibernate Validation

Im facing a bit of an issue when trying to validate a decimal property on domain object which is bound to a textbox on the view through the viewmodel. I am using NHibernate to decorate my property on ...

How do WPF Markup Extensions raise compile errors?

Certain markup extensions raise compile errors. For example StaticExtension (x:Static) raises a compile error if the referenced class cannot be found. Anyone know the mechanism for this? Is it baked ...

WPF design-time context menu

I am trying to create a custom wpf control, I m wondering how I can add some design-time features. I ve googled and can t seem to get to my goal. So here s my simple question, how can I add an entry ...

How to combine DataTrigger and EventTrigger?

NOTE I have asked the related question (with an accepted answer): How to combine DataTrigger and Trigger? I think I need to combine an EventTrigger and a DataTrigger to achieve what I m after: when ...

热门标签