首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在组合框中显示两个displaymemeber和一个选定的值路径c# wpf只留下一个

如何在组合框中显示两个displaymemeber和一个选定的值路径c# wpf只留下一个
EN

Stack Overflow用户
提问于 2021-07-14 22:59:14
回答 2查看 78关注 0票数 0

我正在使用WPF C#

我想在组合框项目中显示DisplayMemberPath和SelectedValuePath,但是当用户单击其中一个组合框项目时,在组合框选择的项目上只显示SelectedValue

就像这张模拟的图片:

我的模型:

代码语言:javascript
运行
复制
    public partial class CST
{
    public string Tafcode { get; set; }//ID
    public string Esm { get; set; }//Name

    public string Shoy => $"{Tafcode}  {Esm}";
}

政务司司长:

代码语言:javascript
运行
复制
  var quer_ITM = dbms.Database.SqlQuery<CST>("SELECT Tafcode , Esm FROM CST").ToList();

        cmb.ItemsSource = quer_ITM;
        cmb.DisplayMemberPath = "Shoy"; //Merg of Esm + Tafcode
        cmb.SelectedValuePath = "Tafcode";//The Primary Key 112-1-1

XAML:

代码语言:javascript
运行
复制
 <ComboBox x:Name="cmb"  Margin="0,312,202,0" VerticalAlignment="Top" Height="22" FlowDirection="RightToLeft"  FontFamily="/Negin;component/NT/#IRANSans" IsEditable="True" Background="#FFCCFFFF" HorizontalAlignment="Right" Width="402">
       
    </ComboBox>

我在上行线路上没有错误,只是我不知道怎么做

请帮帮忙?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2021-07-15 00:21:12

您可以用ItemTemplate替换DisplayMemberPath

代码语言:javascript
运行
复制
cmb.ItemsSource = dbms.Database.SqlQuery<CST>("SELECT Tafcode , Esm FROM CST").ToList();
...
<ComboBox x:Name="cmb"  Margin="0,312,202,0" VerticalAlignment="Top" Height="22" FlowDirection="RightToLeft" 
        FontFamily="/Negin;component/NT/#IRANSans" IsEditable="True" Background="#FFCCFFFF" HorizontalAlignment="Right" Width="402"
        SelectedValuePath="SelectedValuePath">
    <ComboBox.ItemTemplate>
        <DataTemplate>
            <TextBlock Text="{Binding Shoy}" />
        </DataTemplate>
    </ComboBox.ItemTemplate>
</ComboBox>

...and重写类的ToString()方法:

代码语言:javascript
运行
复制
public partial class CST
{
    public string Tafcode { get; set; }
    public string Esm { get; set; }

    public string Shoy => $"{Tafcode}  {Esm}";

    public override string ToString() => Tafcode;
}
票数 1
EN

Stack Overflow用户

发布于 2021-07-14 23:26:34

我相信您不能直接定义具有相同类成员的操作操作符。您要么必须编写一个小的辅助函数来完成此操作,要么尝试将您的代码更改为cmb.DisplayMemberPath = $"{Tafcode} {Esm}";

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/68380475

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档