2015年7月17日 星期五

超實用 強制更新Listview的Itemsource

ICollectionView view = CollectionViewSource.GetDefaultView(DeviceSeries.Instance.dic_device);
               
view.Refresh();




2015年4月22日 星期三

DisplayTemplates & EditorTemplates

在mvc中,我們可以為特定型別定義模板

當在razor語法中,用某些語法呼叫該型別時,會自動對應到Shared資料夾下的模板來顯示


@Html.DisplayFor ->Shared/DisplayTemplates/型別名稱
@Html.EditorFor->Shared/EditorTemplates/型別名稱

例如,當我們在razor中使用@Html.DisplayFor(m=>m.myText),myText是string型別時,會使用Shared/DisplayTemplates/String.cshtml來取代該字串的顯示

以上的模板是針對網站上所有該型別的資料,如果只是想要讓特定幾筆資料使用模板,可以將Shared/DisplayTemplates/下的String.cshtml改名,然後再到model使用的型別上定義要使用的模板


如String.cshtml->MyString.cshtml

model class

[UIHint("MyString")]
public string myText{ get; set;}



2015年4月20日 星期一

MVC migration command

在Package Manager Console(nuget套件管理員->套件管理器主控台)下輸入
Enable-Migrations - ContextTypeName 開啟該資料表的migration
這個指令會產生 Migrations 資料夾,其中包含 Configuration.cs 檔案
Configuration.cs中的Seed function可以輸入進行migration時要建立的資料
add-migration Initial 重新產生資料表
add-migration 欄位名稱 新建欄位
最後輸入update database即可更新資料表,此時會連帶建立Seed()中定義的資料 add-migration DataAnnotations 可更新資料欄位的定義(格式 長度限制等)

2015年4月19日 星期日

MVC 日期顯示方式(Model中的日期參數)

DateTime在View中使用Model.DateTime來綁定的話,預設會顯示yyyy/MM/dd hh/mm/ss 想要修改顯示方式的話,可以在參數上加上這行 [DisplayFormat(DataFormatString = "{0:yyyy-MM-dd}", ApplyFormatInEditMode = true)]

MVC 防範CSRF攻擊

轉載http://kevintsengtw.blogspot.tw/2013/01/aspnet-mvc-validateantiforgerytoken.html

2015年3月25日 星期三

同時使用viewport3D與RenderTargetBitmap時發生的問題

最近有個專案,在使用3D模組的同時,還要不斷地對其拍照上傳 於是我使用了RenderTargetBitmap.Render(viewport3D)來對整個3D建模進行拍攝 但是我發現這行指令執行完畢後,viewport3D上正在執行的動畫效果及貼圖全都會消失 疑似是該指令讓viewport3D失去綁定關係 目前解決的方法是在把viewport3D從其父容器上移除並重新加入

2015年3月13日 星期五

Json with Linq

之前本來是用 Newtonsoft.Json 的JsonConverter來解Json字串 但是要把整個物件建起來實在太麻煩啦,雖然相對地比較嚴謹就是了 Newtonsoft.Json.Linq 下的JObject用起來方便多了 Jobject o = JObject.Parse(json_string); class aaa = (class)o["parameter_name"] 類似javascript在抓物件的方式,省去很多功夫