Events are not firing if the control's visibility is set to Collapsed. And there is not Hidden Visibility in Silverlight. But you can set Opacity=0 to make it hidden.You'll also want to set IsHitTestVisible to false on an element you've set Opacity=0 on, otherwise the user will still be able to click on it, even if they meant to click on some underlying element. The event will fire then.
<TextBox TextChanged="textBox1_TextChanged" x:Name="txt" Opacity="0" IsHitTestVisible="False"/>
Or you must fire it explicitly.