0

次を使用して、リピーターでいくつかのデータを表示しています-

        BindingSource bindingSource5 = new BindingSource();
        bindingSource5.DataSource = BookingManager.GetBookingDaysForDayWithBookingFields(DateTime.Now.AddDays(+4));

        lbSchoolFri.DataBindings.Add("Text", bindingSource5, "SchoolName");
        lbTeacherFri.DataBindings.Add("Text", bindingSource5, "FullName");

        lbDurationFri.DataBindings.Add("Text", bindingSource5, "BookingDayDuration");
        lbYear.DataBindings.Add("Text", bindingSource5, "Year");

        cbSchoolFri.DataBindings.Add("Checked", bindingSource5, "SchoolContacted");
        cbTeacherFri.DataBindings.Add("Checked", bindingSource5, "TeacherContacted");
        cbEmailFri.DataBindings.Add("Checked", bindingSource5, "LetterSent");

        dataRepeater5.DataSource = bindingSource5;

cbSchoolFriday がチェックされている場合、Picture Box pbFriday の背景色を赤に変更したいと考えています。これどうやってするの?

スクリーンショット - ここに画像の説明を入力

ありがとう

4

2 に答える 2

1

DataBindingsイベントを使用せずに遊びたい場合CheckedChangedは、次の解決策があります。

Binding bind = new Binding("Checked", bindingSource5, "SchoolContacted");
bind.Format += (s,e) => {
    e.Value = (int)e.Value == 1;
    dataRepeater.ItemTemplate.BackColor = ((bool)e.Value) ? Color.Red : Color.White;
};
cbSchoolFri.DataBindings.Add(bind);

使用できるプロパティdataRepeater.ItemTemplateがあるかどうかわかりませんか?DataBindingsdataRepeater.ItemTemplate.DataBindings

于 2013-06-18T08:28:10.850 に答える
0

私はこれを解決することができました。dataRepeater には DrawItem イベントがあるようです。ここに、次のコードを配置します-

private void dataRepeater1_DrawItem(object sender, Microsoft.VisualBasic.PowerPacks.DataRepeaterItemEventArgs e)
    {
        CheckBox cbSchoolMon = e.DataRepeaterItem.Controls["cbSchoolMon"] as CheckBox;
        Label lbTeacherIDMon = e.DataRepeaterItem.Controls["lbTeacherIDMon"] as Label;

        PictureBox pbMon = e.DataRepeaterItem.Controls["pbMon"] as PictureBox;

        if (cbSchool.Checked)
        {
            pbMon.BackColor = Color.Red;
        }
        else
        {
            pbMon.BackColor = Color.Yellow;
        }
    }

ご協力いただきありがとうございます。

于 2013-06-18T10:09:47.517 に答える