Ich habe eine Usercontrol mit einem Viewmodel-Klasse als Datacontext:interne Bindung Ansichtsmodell-Liegenschaften
XAML
<UserControl x:Class="DotfuscatorTest.UserControl.View.UserControlView"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d" >
<StackPanel>
<TextBox Text="{Binding ViewModelProperty}"/>
</StackPanel>
</UserControl>
Codebehind:
namespace DotfuscatorTest.UserControl.View
{
using ViewModel;
public partial class UserControlView
{
public UserControlView()
{
InitializeComponent();
DataContext = new UserControlViewModel();
}
}
}
Ansichtsmodell Klasse:
namespace DotfuscatorTest.UserControl.ViewModel
{
public class UserControlViewModel
{
private string viewModelProperty = "hello world";
internal string ViewModelProperty
{
get { return viewModelProperty; }
set { viewModelProperty = value; }
}
}
}
Wenn ich den ViewMod einstelle elProperty für die Öffentlichkeit funktioniert die Bindung gut. Aber wenn ich die Eigenschaft wie oben auf intern festlegen, schlägt die Bindung fehl (Binding error: Eigenschaft nicht gefunden ...).
Ich dachte, eine interne Eigenschaft ist wie public in derselben Baugruppe zugänglich. Ich kann auch ohne Probleme von Usercontrol-Code-Behind auf die Eigenschaft zuzugreifen:
{
...
((UserControlViewModel)DataContext).ViewModelProperty = "hallo viewmodel";
...
Alle explenation für dieses Verhalten?
Vielen Dank im Voraus, rhe1980
Sie, bevor Sie einen Blick auf Databinding-docs genommen haben sollte. – HichemSeeSharp