Привет, я новичок в написании приложений на C#.Сбой приложения при переключении на другой XAML
Извините, если это слишком простое. У меня есть поток в Main xaml, который запрашивает некоторую информацию и обновляет свойство.
Итак, как только я обнаружил, что свойство имеет значение «X», мне нужно переключиться на другое представление XAML.
Проблема, с которой я столкнулся, - это когда я вызываю переключатель из свойства, мое приложение падает. Я думаю, что это имеет отношение к потоку.
Qn: Как переключиться на другой вид XAML, как только я обнаружил, что значение свойства изменилось?
Пример кода:
общественный частичный класс MainWindow: Window {
....
private Thread t;
public static enState dummy;
public enState SetSTATE
{
get
{
return dummy;
}
set
{
dummy = value;
if (dummy == A)
{
var NEWVIEW = new VIEW1();
contentGrid.Children.Add(NEWVIEW); // - crashes in this block
}
}
}
public void startThread()
{
t = new Thread(getInfo);
t.Isbackground = true;
t.start();
}
public void getInfo()
{
while (true)
{
int x = somefunc();
if (x == conditon)
{
SetSTATE = A;
}
Thread.Sleep(1000);
}
}
MainWindow() { startThread(); }
}
общественный частичный класс NewView: UserControl
Спасибо, что сделал. Это сработало. Можете ли вы порекомендовать какую-нибудь хорошую книгу для их изучения? –
@GanapathySubramanian В принципе, вам всегда нужно это делать, если вы хотите изменить элементы пользовательского интерфейса из фонового потока. С WPF нужны только коллекции. –