Mam własną klasę do obliczania kosztu wymalowania sypialni. Ale przy stawianiu warunków nie mogę odwołać się do kontrolek text.Box, checkbox itd. Mam taki błąd podczas kompilacji. Ja to rozwiązać?
An object reference is required for the non-static field, method, or property 'MainWindow.textBox'
class Sypialnia
{
public static int Sciany( int KosztFarba, int KosztNarzedzia)
{
if (!string.IsNullOrEmpty(textBox.Text))
{
KosztFarba = int.Parse(textBox.Text);
}
if (checkBox.IsChecked == false)
{
KosztFarba = 0;
}
int SumaSypMalow = 0;
SumaSypMalow = KosztFarba + KosztNarzedzia ;
return SumaSypMalow;
Przepraszam, że dopiero teraz. Otworzyłem zakładkę i zapomniałem odpowiedzieć.
Po prostu nadaj im nazwy atrybutem Name i odwołaj się po tej nazwie. Jeśli nadałeś nazwę to wg błędu, który podałeś próbujesz się odwołać do kontrolek z poziomu statycznej metody. Twoja metoda Sciany jest statyczna co znaczy, że istnieje nawet gdy nie istnieje kontrolka, tak więc odwoływanie się do czegoś co potencjalnie może nie istnieć może być niebezpieczne, dlatego też nie mogłeś wykonać tego co robiłeś.
Dalej nie usunąłeś słowa static z metody Sciany i wywołujesz bezpośrednio metodę Sciany. Stworz obiekt klasy Sypialnia w metodie Button_Click i wywolaj metodę przy pomocy obiektu.