2009/7/31

Databinding : Communication between Target and Source

A CodeProject Article

這兩天在網路上到處搜尋有關Databinding的文章,通常找到的東西講的都跟這篇codeproject上的內容一樣。都是講解怎麼樣顯示資料,都沒講到怎麼樣讓這些被顯示的資料可以被使用者變更後記錄起來。

<TextBox Name="Tbx" Text="{Binding Path=Test1}" MouseLeave="Tbx_MouseLeave"></TextBox>

上面這段code,照著文章中的範例可以成功的顯示出,Test1 property在一個class instance中的值。

那要怎麼讓使用者在Textbox中輸入文字後可以改變Test1的值ㄋ?為了找這個答案讓我找的手都長繭,

<TextBox Name="Tbx" Text="{Binding Path=Test1, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}" MouseLeave="Tbx_MouseLeave"></TextBox>

只要加上紅色的部分就可以讓使用者變更Test1的值,藍色的部分可以不加,因為預設就是這個值,要注意的是這只能接收使用者的修改不能反映程式內的修改,要顯式經由程式修改的值,必須實作 INotifyPropertyChanged才行,就像一開始的文章中所說的。至於如何判斷輸入的東西要如何過濾,我不知道,需要再找。

MSDN中UpdateSourceTrigger的說明可以設定的值

2009/7/28

Threadsafe events

http://www.codeproject.com/Articles/37474/Threadsafe-Events.aspx

想做一個功能,很多個thread在不同時間會發出一個event,這些event都由同一個event handler來處理。

因為擔心這樣做不是thread-safe,到處找了很久,在codeproject上找到的這篇是我看到整理最清楚剛好提供了我想知道的資訊。

讀完後的心得:不要在raise event後,讓event handlers有機會離開。

因此有機會出錯的情況是很多個event handler對一個raised event,而很多個raised event對一個event handler則沒有這個問題;另外很多個raised event在event handler內處理時會被block住,一次只處理一個raised event。

2008/11/6

ViewportHeight, ExtentHeight, VerticalOffset

因為想做一個功能是可以讓我在看 list 中的資料時,
不會因為 list 正在更新就一直被 scroll 到最新的資料,
同時也想在 scroll 到最底時可以一直看到最新的資料,
一個辦法是偵測scroll bar 有沒有置底,
前提是 list 有長到 scroll bar 出現

ViewportHeight + VerticalOffset(Scroll 到最底) = ExtentHeight

使用這個就可以判斷了 (筆記

2008/7/24

Macross 7 - power to the dream



歌詞出處

POWER TO THE DREAM
作詞:K.INOJO/作曲:福山芳樹/編曲:田中裕千/歌:FIRE BOMBER

POWER TO THE DREAM

*POWER TO THE DREAM
 POWER TO THE MUSIC
 新しい夢が欲しいのさ
 POWER TO THE UNIVERSE
 POWER TO THE MYSTERY
 俺たちのパワーを伝(つた)えたい

やっと掴(つか)んだ希望(きぼう)が
指(ゆび)のすきまから逃げてく
ブラックホールの彼方まで
ずっとおまえを追いかけてく

POWER TO THE WORLD
POWER TO THE LOVERS
本当の愛が見たいのさ
POWER TO THE RAINBOW
POWER TO THE FUTURE
あきらめたらお終(しま)いさ

輝くすい星(せい)の軌跡(きせき)が
メロディにソウルを与(あた)える
人は1人じゃ生きられない
愛する誰かが必要さ

*refrain
POWER TO THE DREAM
POWER TO THE MUSIC
COME ON!
FEEL THE POWER
FROM YOU & ME
POWER TO THE UNIVERSE
POWER TO THE MYSTERY
COME ON!
FEEL THE POWER
FROM YOU & ME

2008/7/18

vim 設定檔

修改自這裡

0. cd ~

1. vi .vimrc # 新增喜好設定檔

2.
set cindent
  set enc=taiwan
  set fileencoding=taiwan
  set hls
  set nocompatible # 方向鍵不會出現英文
  set sw=2
  #set guifontset=8x16,kc15f,-*-16-*-big5-0 # 設定 zh_TW.Big5 locale
  syntax on
  highlight Comment ctermfg=darkcyan
  highlight Search term=reverse ctermbg=4 ctermfg=7

3. cp .vimrc /home/XXX # 將 .vimrc 設定檔拷貝給現有使用者

4. cp .vimrc /usr/share/skel/dot.vimrc # 日後新增帳號自動複製