我想完成一個C#/ XAML頁面,並且遇到了麻煩。基本上,當我嘗試編譯時,它抱怨變量名稱(Courier_List)在當前上下文中不存在。我從概念上理解爲什麼還沒有在代碼中的任何地方聲明。但是,我沒有聲明它的原因是因爲這個打包的.dll是爲了與包含該定義的管理包(XML文件)一起工作(Courier_List)定義爲一個列表幷包含指示視覺編譯器放置在何處的座標表格上的列表。在XAML中延遲變量聲明
我猜測解決方案必須是在窗體中聲明列表變量......但我不知道如何(以及它是否會工作)只聲明變量並不在.dll中的任何位置使用它,那麼當所有東西都放在一起時,它會從管理包中調用Courier_List,而不會混淆兩個相同的名稱變量。
我的描述可能會令人困惑,因爲這很難解釋,所以如果有人需要澄清,請讓我知道。我已經包含下面的代碼:
[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;
}
}
}
}
你可能會嘗試另一個標題爲「編譯後通過xml聲明一個變量」不知道我可以比任何更多的幫助。 – paqogomez 2014-10-09 16:29:51
我不想通過XML聲明它...它已經在XML中聲明瞭...我試圖在C#中編寫邏輯後端(這也讓我困惑,爲什麼有人將我的問題的標題改爲XAML)並且不確定如何聲明它,而不使用變量,直到從xml中調用它 – SirLearnAlot 2014-10-09 17:58:19
它還需要被定義爲C#類。我建議您將XML的一部分添加到問題中。 – 2014-10-09 18:03:28