0

我正在使用 NetMQ 远程处理设备。它是一个基于服务器/客户端的架构。我用 WPF 和 Xaml 实现了一个 GUI,它让我可以将命令作为字符串发送,也可以将答案作为字符串接收。主机应用程序有一个Dictionary<int, cmdStruct> ListOfCommands(). int 是一个 ID,cmdStruct 是一个定义命令结构的类,即string cmdTextstring cmdHelpTextdelegate cmdAction.

public static Dictionary<int, CommandStructure> CollectionOfCommands = new Dictionary<int, CommandStructure>();

public class CommandStructure
{

    public string mCommandName;
    public string mCommandHelpText;
    public Func<string> mFunc;

当我发送命令“列表”时,它应该显示字典中的所有命令,我使用它的键和值访问它以仅显示 ID、cmdText 和 cmdHelpText。然后我将它们放入stringBuilderusing append 中。

if (_clientCommand == "?" || _clientCommand == "list")
{
    foreach (var cmd in CollectionOfCommands)

    {
        stringBuilder.Append(cmd.Key + Tab);
        stringBuilder.Append(cmd.Value.mCommandName + Tab);
        stringBuilder.Append(cmd.Value.mCommandHelpText + NewLine);
        _serverResponse = stringBuilder.ToString();
    }
}

除非我尝试将 ListBox 更改为 ComboBox (a DropDownList) 以在其上显示所有可用命令,否则这里一切正常。但问题是它不起作用。我得到了垂直列出的命令,而不是水平列出的命令。

private void ListCommands(object sender, RoutedEventArgs e)
{
        Client.SendFrame(list);

        Thread.Sleep(100);

        var response = Client.ReceiveFrameString();

        //ListHelp is a listbox
        ListHelp.Items.Add(response);

       //IF I PUT IT IN A COMBOBOX IT SHOWN AS DESCRIBED
       ComboBox.ItemsSource = response;

}
4

0 回答 0