【发布时间】:2016-11-09 12:19:01
【问题描述】:
我正在编写一个 C# Add-in Enterprise Architect 来验证标记值,因为当我使用 Type=Integer 的标记值时,标记值空间中会出现一个默认值 0。 我已经给出了 Type=String 的标记值并验证了用户输入的值。我正在使用以下代码。
public bool EA_OnNotifyContextItemModified(EA.Repository Repository, string GUID, EA.ObjectType ot)
{
string test_value;
bool isInteger;
int integer_converted;
if (ot == EA.ObjectType.otElement)
{
EA.Element element = (EA.Element)Repository.GetElementByGuid(GUID);
EA.TaggedValue tag = element.TaggedValues.GetByName("MAX-BASE-TYPE-SIZE");
test_value = tag.Value;
if (string.IsNullOrEmpty(test_value))
{
Session.Repository.WriteOutput("EA", "Enter any Value", 1);
}
else
{
isInteger = int.TryParse(test_value, out integer_converted);
if (isInteger == false)
{
string empty = " ";
tag.Value = empty;
tag.Update();
Session.Repository.WriteOutput("EA", "Enter Integer Value" + " " + tag.Name + ":" + "", 1);
}
}
}
}
}
return true;
}
问题是,只有当我关闭元素属性窗口并重新打开元素时,才会用空字符串替换无效的标记值。
当我将光标移动到元素本身的下一个标记值而不是每次都关闭并重新打开元素时,如何查看使用空字符串更新的标记值。
请帮助。提前致谢。
【问题讨论】:
-
如果您正在构建插件,为什么要坚持使用 EA 属性窗口..?构建一个您自己的简单表单,用于向元素添加标记值,以便您也可以轻松验证......!
-
我需要为该元素设置 type=RefGUID ,RefGUIDList 的标记值,这就是我尝试验证这些值的原因
-
您甚至可以在自定义窗口中获取所有这些值。?
标签: c# add-in enterprise-architect