㈠ linux怎麼把後台運行的程序切換到前端顯示
nohup 程序名 >> output.txt & 其中,output.txt 是把程序輸出重定向到文件里。 今後可以查看程序輸出內容。
㈡ WPF怎麼從後台頁面替換前台頁面的控制項模板(ItemTemplate)
看得出你的意思,你使用了mvvm模式,然後希望在viewmodel內部切換前端的DataTemplate。因為viewmodel理論上是不引用前端的,所以你肯定無法訪問前端任何一個DataTemplate。所以你可以這樣做:
把你需要在ViewModel中切換的DataTemplate切換到程序的資源字典中,資源字典也就是wpf的ResourceDictionary,你的ViewModel是可以訪問到的。
在ViewModel中設置一個String類型的屬性,例如SelectedTemplate,用於之後的模板切換。
在你前端的ItemTemplate位置綁定這個SelectedTemplate屬性,但你需要一個Converter來輔助樣式的切換。
<ListBox ItemTemplate ="{Binding Path=SelectedTemplate, Converter={StaticResource StringToDataTemplateConverter}}">
這個Converter你可以這么寫:
:IValueConverter
這樣一來前端的ItemTemplate就可以和ViewModel的SelectedTemplate完成綁定,你更改SelectedTemplate的值,你的Converter就會在資源字典中查找對應的DataTemplate了。
{
publicobjectConvert(objectvalue,TypetargetType,objectparameter,CultureInfoculture)
{
returnInternalConvert(value,targetType,parameter);
}
publicobjectConvertBack(objectvalue,TypetargetType,objectparameter,CultureInfoculture)
{
();
}
publicobjectInternalConvert(objectvalue,TypetargetType,objectparameter)
{
if(value==null)
{
returnnull;
}
varresources=Application.Current.Resources.MergedDictionaries.ToList();
foreach(vardictinresources)
{
foreach(varobjkeyindict.Keys)
{
if(objkey.ToString()==value.ToString())
{
returndict[objkey]asDataTemplate;
}
}
}
returnnull;
}
}