如何使用嵌套字典作为源将文本块绑定到组合框

芬弗诺

我有两个ComboBox第一个源是 a dictionary,以字符串为键,以对象为值。选择一个项目后,第二个ComboBox将填充来自所选项目的单独dictionary. ComboBox选择从第二个项目时TextBlock应显示第二个中选择的密钥的值ComboBox但是,文本块始终显示为空。我已确保该值中确实包含实际数据,这使我相信这是一个具有约束力的问题。

这是我的 ViewModel 的相关部分:

GPHDTModel gphdtModel = new GPHDTModel();

private Dictionary<string, object> models = new Dictionary<string, object>();
public Dictionary<string, object> Models
{
    get
    {
        return models;
    }
}

public MainWindowViewModel()
{
    gphdtModel.MessageID = "3";
    models.Add("GPHDT", gphdtModel);
}

接下来是 GPHDTModel:

private Dictionary<string, string> _fields = new Dictionary<string, string>();
public Dictionary<string, string> Fields
{
    get
    {
        return _fields;
    }
}

public GPHDTModel()
{
    _fields.Add("MessageID", MessageID);
}

private string _messageID;
public string MessageID
{
    get { return _messageID; }
    set { _messageID = value; OnPropertyChanged("MessageID"); }
}

最后的观点:

<ItemsControl ItemsSource="{Binding DataModelCollection}">
    <ItemsControl.ItemTemplate>
        <DataTemplate>
            <StackPanel>
                <ComboBox x:Name="NMEAlist"
                          DisplayMemberPath="Key"
                          ItemsSource="{Binding Path=DataContext.Models,
                                                RelativeSource={RelativeSource Mode=FindAncestor,
                                                                               AncestorType={x:Type ItemsControl}}}"
                          SelectedValuePath="Value" />
                <ComboBox x:Name="ModelList"
                          DisplayMemberPath="Key"
                          ItemsSource="{Binding SelectedItem.Value.Fields,
                                                ElementName=NMEAlist}"
                          SelectedValuePath="Value" />
                <TextBlock Text="{Binding Value,
                                          ElementName=ModelList}" />
            </StackPanel>
        </DataTemplate>
    </ItemsControl.ItemTemplate>
</ItemsControl>

编辑:在TextBlock要调试的绑定中使用转换器,它显示了正确的密钥,在本例中为“MessageID”,但该密钥的值为空,此时应为“3”。

正如下面@mm8 所说,当像这样绑定文本块时:Text="{Binding SelectedItem.Key, ElementName=ModelList}"“MessageID”出现在文本块中。所以使用 绑定是正确的SelectedItem.Value,但值设置不正确。

毫米8

尝试绑定到 的Value属性的SelectedItem属性ComboBox

<TextBlock Text="{Binding SelectedItem.Value, ElementName=ModelList}" />

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

WPF将字典绑定到组合框

来自分类Dev

将资源字典绑定到组合框

来自分类Dev

需要帮助将多绑定的tkinter组合框python脚本调整为嵌套字典源

来自分类Dev

将文本框绑定到字典

来自分类Dev

使用字典作为组合框数据源

来自分类Dev

将组合框元素绑定到数据源

来自分类Dev

将组合框元素绑定到数据源

来自分类Dev

将字典绑定到C#中的组合框

来自分类Dev

将组合框项目绑定到枚举字典

来自分类Dev

如何将文本框的长度绑定到文本块?

来自分类Dev

将wpf组合框绑定到<string,CustomClass>的字典,并使用自定义类的数据

来自分类Dev

如何将文本框中的字体大小绑定到数据源?

来自分类Dev

如何将组合框数据源绑定到Windows窗体中的窗体/列表框?

来自分类Dev

将文本绑定到组合框中的所选项目

来自分类Dev

将文本框绑定到字典的键

来自分类Dev

如何将字典绑定到DataGridView的数据源

来自分类Dev

如何将mybatis的resultmap绑定到javafx组合框?

来自分类Dev

如何将组合框绑定到工具提示WPF

来自分类Dev

使用敲除将枚举绑定到组合框

来自分类Dev

如何将模型绑定到Kendo组合框以使用模型验证?

来自分类Dev

将组合框项目源绑定到那些对象的某些属性

来自分类Dev

将记录添加到绑定到数据源的组合框

来自分类Dev

如何使用黄油刀绑定到组合框?

来自分类Dev

使用 TextBlock C# MVVM XAML 通过工具提示将文本绑定到特定的组合框项

来自分类Dev

将组合框绑定到字典,下拉列表显示键和值

来自分类Dev

.NET4.5将组合框绑定到字典问题。WPF

来自分类Dev

将List <KeyValuePair>绑定到组合框

来自分类Dev

将属性值绑定到组合框

来自分类Dev

将查询结果绑定到组合框

Related 相关文章

热门标签

归档