private void SecondThrowResultUpdated(object sender, EventArgs e)
        {
            var pinsKnocked = int.Parse(comboBox2.SelectedItem.ToString());
            var knock = new Knock(ThrowOrder.Second, pinsKnocked, Frame.Knocks.First(x => x.Value.Order == ThrowOrder.First).Value.RemainPins - pinsKnocked);
            Frame.Knocks.Add(knock.Order, knock);

            Frame.LastKnockInfo = knock.Result == KnockType.Spare ? KnockType.Spare : KnockType.Default;

            scoreAction();
            UpdateFrameViewState();
        }
        private void ThirdThrowResultUpdated(object sender, EventArgs e)
        {
            var pinsKnocked = int.Parse(comboBox3.SelectedItem.ToString());
            var knock = new Knock(ThrowOrder.Third, pinsKnocked, Constants.PinsInFrame - pinsKnocked);
            Frame.Knocks.Add(knock.Order, knock);

            scoreAction();
            UpdateFrameViewState();
        }
        private void FirstThrowResultUpdated(object sender, EventArgs e)
        {
            var pinsKnocked = int.Parse(comboBox1.SelectedItem.ToString());
            var knock = new Knock(ThrowOrder.First, pinsKnocked, Constants.PinsInFrame - pinsKnocked);
            Frame.Knocks.Add(knock.Order, knock);

            if (knock.Result == KnockType.Strike)
            {
                Frame.LastKnockInfo = KnockType.Strike;
            }
            scoreAction();
            UpdateFrameViewState();
        }