状況: 私はMainView.xamlとMainViewModel.csを持っています ビューはcaliburn microを使用してviewmodelに接続されています。 バインディングは動作していますが、特別なケースでは動作しません。 私のコンストラクタのbool型のプロパティをfalseに初期化すると、バインディングはtrueに更新されません。 propをtrueに初期化すると、後でfalseまたはtrueに変更する問題はありません。BOOL変数は初期化後に偽に更新されません
XAMLファイル:
<Style x:Key="EyeXGazeAwareElement" TargetType="FrameworkElement">
<Setter Property="eyeX:Behavior.GazeAware" Value="{Binding IsGazeActivated}" />
<Setter Property="eyeX:Behavior.GazeAwareDelay" Value="10" />
...
<Grid HorizontalAlignment="Center" Style="{StaticResource EyeXGazeAwareElement}" Width="250"></Grid>
とのViewModelで:
public bool IsGazeActivated { get; set; }
public MainViewModel()
{
IsGazeActivated = false;
}
private void GazeActivatedChanged()
{
//this value gets changed, but not in the xaml file...
//but only if the initial value was set to false, otherwise it is working perfect
IsGazeActivated = Setting.Instance.IsGazeActivated;
}
私はすでにモード=双方向を使用しようとしました、変更された覚え事トリガー、。 ..しかし何も働かなかった!
EDIT: 私は自分のプロパティを製織するためにPropertyChanged.Fodyを使用します。 したがって、PropertyChangedを手動で呼び出す必要はありません。 eyeXの値:Behavior.GazeAwareは "True"または "False"であり、bool ..とマッピングする必要があり、IsGazeActivatedをコンストラクタでfalseに初期化するときは既にマッピングされています。
私の質問を編集しましたが、私は今何を意味するのかはっきりしていると思います。 –