我正在使用WPF C#
我想在组合框项目中显示DisplayMemberPath和SelectedValuePath,但是当用户单击其中一个组合框项目时,在组合框选择的项目上只显示SelectedValue
就像这张模拟的图片:

我的模型:
public partial class CST
{
public string Tafcode { get; set; }//ID
public string Esm { get; set; }//Name
public string Shoy => $"{Tafcode} {Esm}";
}政务司司长:
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-1XAML:
<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>我在上行线路上没有错误,只是我不知道怎么做
请帮帮忙?
发布于 2021-07-15 00:21:12
您可以用ItemTemplate替换DisplayMemberPath
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()方法:
public partial class CST
{
public string Tafcode { get; set; }
public string Esm { get; set; }
public string Shoy => $"{Tafcode} {Esm}";
public override string ToString() => Tafcode;
}发布于 2021-07-14 23:26:34
我相信您不能直接定义具有相同类成员的操作操作符。您要么必须编写一个小的辅助函数来完成此操作,要么尝试将您的代码更改为cmb.DisplayMemberPath = $"{Tafcode} {Esm}";
https://stackoverflow.com/questions/68380475
复制相似问题