最近用到wpf開發程式,使用了幾種動態設定控制項外觀的方法,跟大家分享一下。
list控制項datatemplate指的是如何表現資料呈現形式的模板(這並不包括包裹datatemplate的控制項部分),乙個list控制項條目可以根據自己的資料使用不同的模板,可以使用itemtemplateselector屬性。若需要對整個條目做自定義設定,就要用到itemcontainerstyle,同樣乙個list控制項條目可以根據自己的資料使用不同的item樣式。我寫了乙個小demo,展示了這幾種用法。
using system;
using system.collections.generic;
using system.linq;
using system.text;
using cncertofflinemgr.viewmodel;
namespace test
set}
public int age
set}
}}
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.windows.controls;
using system.windows;
namespace test.selector
public datatemplate youngdatatemplate
public datatemplate adultdatatemplate
public override datatemplate selecttemplate(object item, dependencyobject container)
else if (person.age >= 20)
return kiddatatemplate;}}
}
using system;
using system.collections.generic;
using system.linq;
using system.text;
using system.windows.controls;
using system.windows;
namespace test.selector
public style youngtemplate
public style adulttemplate
public override style selectstyle(object item, dependencyobject container)
else if (person.age >= 20)
return kidtemplate;}}
}
using system;
using system.collections.generic;
using system.linq;
using system.text;
using cncertofflinemgr.viewmodel;
using system.collections.objectmodel;
using system.windows.input;
namespace test.viewmodel
}public templateselectorwndviewmodel()
);_persons.add(new person() );
_persons.add(new person() );
}private void executechangeagecommand(object parameter)
;_persons[0].age = 10;
}public icommand changeagecommand
return _changeagecommand;}}
}}
其中第一中方法展示了使用itemtemplateselector控制外觀的方法,第二種展示了使用itemcontainerstyle控制外觀的方法,第三種展示了使用itemcontainerstyleselector控制外觀的方法。
單擊按鈕,執行executechangeagecommand方法後,發現第一種和第三種控制外觀的方法並不會隨著子資料的變化而變化,而第二種會變化。若使用語句
_persons[0] = new person() ;
則第一種、第二種及第三種會發生變化。說明selector繫結的是其item資料,而第二種採用的資料trigger方式會根據子資料的變化而觸發其動作。
jMeter漢化設定和背景外觀設定
1 漢化 啟動jmeter找到 options choose language chinese 簡體繁體自己選 但是設定完重新啟動後還會變為預設英文。永久預設漢化 在jmeter的安裝目錄下的bin目錄中找到 jmeter.properties這個檔案,用文字編輯器開啟。在 language en下...
MFC list Control 控制項設定
m listprocess m listmodule是相應的控制項變數,首先列表屬性要選擇report crect rect1,rect2 獲取程式語言列表檢視控制項的位置和大小 m listprocess.getclientrect rect1 m listmodule.getclientrect...
設定OWC axSpreadsheet控制項資料來源
1 新增元件到控制項工具箱 2 新增控制項到窗體 3 新增c using system 2 using system.collections.generic 3 using system.componentmodel 4 using system.data 5 using system.drawin...