1

C# / XAML ページをファイナライズしようとしていますが、問題が発生しています。基本的に、コンパイルしようとすると、変数の名前 (Courier_List) が現在のコンテキストに存在しないと不平を言っています。コードのどこにもまだ宣言されていないため、概念によって理解しています。ただし、私が宣言していない理由は、このパッケージ化された .dll が、リストとして定義されたその定義 (Courier_List) を含み、配置場所をビジュアル コンパイラに指示する座標を含む管理パック (XML ファイル) で動作することを意図しているためです。フォーム上のリスト。

解決策は、フォームでリスト変数を宣言することでなければならないと推測しています...しかし、変数を宣言するだけで.dll内のどこにも使用しない方法(およびそれが機能するかどうか)がわかりません。まとめると、管理パックから Courier_List が呼び出され、2 つの同じ名前の変数の間で混乱することはありません。

これを説明するのは難しいので、私の説明は混乱を招く可能性があるので、誰かが明確にする必要がある場合はお知らせください. 以下のコードを含めました。

[assembly: CLSCompliant(true)]
namespace Flexity.RMA
{
  /// <summary>
  /// Interaction logic for UserControl1.xaml
  /// </summary>
  class RMATask : CreateWithLinkHandler
  {
      public RMATask()
      {
         try
         {
            // Sealed Class GUID
            this.createClassGuid = new Guid("9ebd95da-1b16-b9ea-274d-6b0c16ce1bf3");
            this.classToDelegate = new Dictionary<Guid, CreateLinkHelperCallback>()
            {
                { ApplicationConstants.WorkItemTypeId, new CreateLinkHelperCallback (this.WorkItemCallback) }
            };
         }
         catch (Exception exc1)
         {
            MessageBox.Show(exc1.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
         }
     }

     public void WorkItemCallback(IDataItem RMAForm, IDataItem IncidentForm)
     {
        try
        {
            // Note to self: RelatedWorkItems should be in MP XML as alias under TypeProjections
            if (RMAForm != null && RMAForm.HasProperty("RelatedWorkItems"))
            {
                // Perform Linking
                RMAForm["RelatedWorkItems"] = IncidentForm;
                // Copy Incident Title to RMA Title
                RMAForm["Title"] = IncidentForm["Title"];
                // Copy Incident Description to RMA Description
                RMAForm["Description"] = IncidentForm["Description"];
                // Copy Incident ID to RMA Display Name 
                RMAForm["DisplayName"] = "From " + IncidentForm["Id"];
            }
        }
        catch (Exception exc2)
        {
            MessageBox.Show(exc2.Message, "Exception", MessageBoxButton.OK, MessageBoxImage.Error);
        }
    }
}

public partial class WITemplate: UserControl
{
    private readonly RelatedItemsPane _relatedItemsPane;

    public WITemplate()
    {
        InitializeComponent();
        var paneConfig = new WorkItemRelatedItemsConfiguration("RelatedWorkItems", "RelatedWorkItemSource",
                                                           "RelatedConfigItems", "RelatedKnowledgeArticles",
                                                           "FileAttachments");
        _relatedItemsPane = new RelatedItemsPane(paneConfig);
        tabItemRelItems.Content = _relatedItemsPane;
    }

    private void Tracking_Button_Click(object sender, RoutedEventArgs e)
    {

        switch (Courier_List.SelectedValue.ToString())
        {
            case "UPS":

                System.Diagnostics.Process.Start("http://wwwapps.ups.com/ietracking/tracking.cgi?loc=CA_CA^&tracknum^=" + Tracking_Num.Text.ToString());
                break;

            case "FedEX":
                System.Diagnostics.Process.Start("https://www.fedex.com/fedextrack/index.html?tracknumbers^="+Tracking_Num.Text.ToString()+"^&locale=en_CA^&cntry_code=ca_english");
                break;

            case "UPS SCS":
                System.Diagnostics.Process.Start("https://www.upspostsaleslogistics.com/cfw/trackOrder.do?trackNumber^=" + Tracking_Num.Text.ToString());
                break;

            default:
                break;
        }
    }
 }
}
4

1 に答える 1