私があなたのシナリオを正しく理解している場合は、次のアプローチを使用できます。
WindowsUIButton checkButton = new WindowsUIButton()
{
Caption = "Check Button",
Style = ButtonStyle.CheckButton
};
checkButton.CheckedChanged += checkButton_CheckedChanged;
tileContainer1.Buttons.Add(checkButton);
//...
int reentranceCount = 0;
void checkButton_CheckedChanged(object sender, EventArgs e) {
if(reentranceCount > 0) return;
/*do some stuff */
Uncheck((WindowsUIButton)sender);
}
void Uncheck(WindowsUIButton button) {
reentranceCount++;
try {
button.Checked = false;
}
finally { reentranceCount--; }
}
更新:TileContiner.ButtonChecked
イベント
を使用している場合は、上記のコードを次のように更新する必要があります。
//...
tileContainer1.ButtonChecked += tileContainer_ButtonChecked;
//...
void tileContainer_ButtonChecked(object sender, ButtonEventArgs e) {
if(reentranceCount > 0) return;
/*do some stuff */
Uncheck((WindowsUIButton)e.Button);
}