私はMVVMについて少し知識を持っているが、これは私がこれまでのところ私のコードを書いた方法です:ViewからViewModelへデータをバインドする方法は?
<Image x:Name ="new_tooltip" Grid.Row="84" Grid.Column="57" Grid.ColumnSpan="78" Grid.RowSpan="15" Source="/MS_Show_Assets/MainMenuAssets/TT-Startscreen-MainMenu-New-DE.png" Visibility = "{Binding IsMouseOver, ElementName=New, Converter={StaticResource BooleanToVisibilityConverter}}">
<Image.Style>
<Style TargetType="{x:Type Image}">
<Setter Property="Visibility" Value="{Binding Path=IsNewTooltipVisible, Mode=OneWayToSource}" />
</Style>
</Image.Style>
</Image>
とのViewModel:
public class ViewMainMenuViewModel : BindableBase
{
public string IsNewTooltipVisible { get; set; }
public ViewMainMenuViewModel()
{
}
}
だから、基本的に、私は、ビュー内の一部の画像が見えるようになりたいですマウスがあるボタンの上にある場合。その後、このイメージが表示されたら、ViewModelクラスにあるプロパティに "Visible"を送信します。私はこのクラスで何が欠けていますか?
MVVMの基本的な規則の1つ(ビューとビューモデルの分離)を破っている場合、ビューモデルに「可視」を送信しないでください。 – slugster
はい、私は知っている...私はブール値または文字列として送信する必要があり、私はvisibilitytobooleanコンバータを使用する必要があります.... – Ivan
'OneWayToSource'を使用して' IsMouseOver'を試してみましたか?以前の.NETバージョンではこれは不可能だったと思います。 –