興味深いことに、リフレクターの DefinitionBase クラスと SharedSizeGroup プロパティを調べました。
次のように定義された検証コールバックを使用して、依存関係プロパティを作成します。
SharedSizeGroupProperty = DependencyProperty.Register("SharedSizeGroup", typeof(string), typeof(DefinitionBase), new FrameworkPropertyMetadata(new PropertyChangedCallback(DefinitionBase.OnSharedSizeGroupPropertyChanged)), new ValidateValueCallback(DefinitionBase.SharedSizeGroupPropertyValueValid));
private static bool SharedSizeGroupPropertyValueValid(object value)
{
if (value == null)
{
return true;
}
string str = (string)value;
if (str != string.Empty)
{
int num = -1;
while (++num < str.Length)
{
bool flag = char.IsDigit(str[num]);
if (((num == 0) && flag) || ((!flag && !char.IsLetter(str[num])) && ('_' != str[num])))
{
break;
}
}
if (num == str.Length)
{
return true;
}
}
return false;
}
私はこれをテストしましたが、実際には、数値以外、アルファ文字、アンダースコア以外の文字を含むものに対して false を返します。また、数字で始まるすべてのグループに対して false を返します。したがって、一般的な変数名の規則に従っているようです..
私の推測では、これは何らかの例外をスローする可能性が最も高いですが、おそらく処理されています。出力ウィンドウを確認しましたか?
無効な名前を試したところ、XAMLParseException が発生しました。