2012-02-19 6 views
4

にトリガ私は私がしたいことバインディングウィンドウタイトルは、スタイルを通じて&& XAML

<Window x:Class="SolutionName.ClassName" 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    Height="300" Width="300" WindowStartupLocation="CenterOwner"> 
<Window.Style> 
    <Style TargetType="Window"> 
     <Style.Triggers> 
      <DataTrigger Binding="{Binding Path=ItemKind}" Value="SomeKind"> 
       <Setter Property="Title" Value="SomeTitle"/> 
      </DataTrigger> 
      <DataTrigger Binding="{Binding Path=ItemKind}" Value="SomeKind2"> 
       <Setter Property="Title" Value="SomeTitle"/> 
      </DataTrigger> 

のようなコードがが(のDataContextとして設定)のviewmodelに実装をItemKind性質に応じて、ウィンドウのタイトルを変更することがありました。上記のコードはうまくいきませんし、間違いが見つからないので、私は本当に混乱しています。

+0

出力ウィンドウでバインディングエラーが表示されますか。 –

+0

タイトルを他の場所に設定しましたか? –

+0

ItemKindは列挙型ですか?値が値パス構文で記述されているか、タイプコンバータを記述する必要があります。したがって、Value = "SomeKind"の代わりにを使用してください。 SomeKind ... – dowhilefor

答えて

2

コードは問題なく機能しています。 ViewModelクラスにINotifyPropertyChangedを実装しましたか? ViewModelクラスのプロパティ値の変更を伝播してUIに反映させるために、このメソッドを実装する必要があります。

How to: Implement Property Change Notification

関連する問題