none
如何在使用DataBinding的狀況下得知TextBlock的Text屬性改變? RRS feed

  • 問題

  • 因為想要再TextBlock的Text改變的時候去播放一段動畫。

    但因為Text我是用Binding的,而且WinRT目前沒有DataTrigger。

    所以不知道要如何做到?

    我有想到一種方式但沒試過可不可行

    繼承TextBlock然後增加一個DependencyProperty叫Text2,然後Binding的時候就不要Binding到Text而是到Text2,因為Text2的屬性是我自己寫的,所以我就可以做一些處理。

    2012年10月31日 上午 07:01

解答

  • 實作 INotifyPropertyChanged 應該也是一種方法

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 FatJohn 2012年11月1日 上午 08:50
    2012年10月31日 下午 03:36
    版主
  • 我在我的Class加了一個型態是SoloidBrush的屬性,然後Binding到一個Rectangle的Fill屬性

    在收到PropertyChanged事件的時候,用ColorAnimation去改變SolidBrush的Color屬性

    然後就做到了!而且效能挺不賴的~

    • 已標示為解答 FatJohn 2012年11月6日 下午 03:24
    2012年11月6日 下午 03:24

所有回覆

  • 實作 INotifyPropertyChanged 應該也是一種方法

    在現實生活中,你和誰在一起的確很重要,甚至能改變你的成長軌跡,決定你的人生成敗。 和什麼樣的人在一起,就會有什麼樣的人生。 和勤奮的人在一起,你不會懶惰; 和積極的人在一起,你不會消沈; 與智者同行,你會不同凡響; 與高人為伍,你能登上巔峰。

    • 已標示為解答 FatJohn 2012年11月1日 上午 08:50
    2012年10月31日 下午 03:36
    版主
  • 嗯~我的DataSource是都有實作INotifyPropertyChanged,

    原本是不太想要用OnPropertyChanged事件去處理的,
    一來是不知道為什麼感覺用OnPropertyChanged事件要去撥動畫怪怪的
    二來是這樣是要另外做「處理」才能知道對應要做動畫的項目是哪一個,因為我的Data是Binding到一個ListBox,這樣我必須要知道觸發PropertyChanged事件的是在DataSource Collection中的第幾個然後才能指定UI上的ListBox第幾個做動畫

    但是...目前看來似乎只有這種作法Orz

    感謝提供建議

    2012年11月1日 上午 02:20
  • 我在我的Class加了一個型態是SoloidBrush的屬性,然後Binding到一個Rectangle的Fill屬性

    在收到PropertyChanged事件的時候,用ColorAnimation去改變SolidBrush的Color屬性

    然後就做到了!而且效能挺不賴的~

    • 已標示為解答 FatJohn 2012年11月6日 下午 03:24
    2012年11月6日 下午 03:24