Ich habe wenig Wissen über mvvm, aber das ist, wie ich meinen Code so weit schrieb:Wie binden Sie Daten von View zu 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>
und Ansichtsmodell:
public class ViewMainMenuViewModel : BindableBase
{
public string IsNewTooltipVisible { get; set; }
public ViewMainMenuViewModel()
{
}
}
Also im Grunde möchte ich einige Bild in der Ansicht sichtbar werden wenn die Maus über einer Taste ist. Sobald dieses Bild sichtbar ist, möchte ich "Visible" an eine Eigenschaft in der ViewModel-Klasse senden. Was fehlt mir noch in dieser Klasse?
Senden Sie nicht "Sichtbar" an das Viewmodel, wenn Sie dies tun, dann brechen Sie eine der grundlegenden Regeln von MVVM (Trennung zwischen Ansicht und Viewmodel). – slugster
Ja, ich weiß ... Ich sollte es als Boolean oder String senden, und ich weiß, ich sollte Sichtbarkeit zu booleschen Konverter verwenden .... – Ivan
Versucht Bindung "IsMouseOver" mit 'OneWayToSource'? Ich denke, das war in früheren .NET-Versionen unmöglich, vielleicht ist es nicht mehr. –