Sie brauchen eine Abhängigkeitseigenschaft für dieses:
public BindingList<User> Users
{
get { return (BindingList<User>)GetValue(UsersProperty); }
set { SetValue(UsersProperty, value); }
}
public static readonly DependencyProperty UsersProperty =
DependencyProperty.Register("Users", typeof(BindingList<User>),
typeof(OptionsDialog));
Sobald dies geschehen ist, binden Sie das Kontrollkästchen, um die Abhängigkeitseigenschaft:
<CheckBox x:Name="myCheckBox" IsChecked="{Binding ElementName=window1,
Path=CheckBoxIsChecked}" />
Dafür arbeiten Sie Ihre Fenster oder Benutzersteuerelement in seinem Start-Tag nennen müssen, und verwenden Sie diesen Namen in dem Elemente Parameter.
Mit diesem Code ändern Sie die Textbox, wenn Sie die Eigenschaft auf der Codepage ändern. Wenn Sie das Textfeld aktivieren/deaktivieren, ändert sich auch die Abhängigkeitseigenschaft.
EDIT:
Eine einfache Möglichkeit, eine Abhängigkeitseigenschaft ist die Eingabe das Snippet propdp zu erstellen, die Ihnen mit dem allgemeinen Code für Abhängigkeitseigenschaften geben.
der gesamte Code:
XAML:
<Window x:Class="StackOverflowTests.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" x:Name="window1" Height="300" Width="300">
<Grid>
<StackPanel Orientation="Vertical">
<CheckBox Margin="10" x:Name="myCheckBox"
IsChecked="{Binding ElementName=window1, Path=IsCheckBoxChecked}"
>Bound CheckBox</CheckBox>
<Label Content="{Binding ElementName=window1, Path=IsCheckBoxChecked}"
ContentStringFormat="Is checkbox checked? {0}"></Label>
</StackPanel>
</Grid>
</Window>
C#:
using System.Windows;
namespace StackOverflowTests
{
/// <summary>
/// Interaction logic for Window1.xaml
/// </summary>
public partial class Window1 : Window
{
public bool IsCheckBoxChecked
{
get { return (bool)GetValue(IsCheckBoxCheckedProperty); }
set { SetValue(IsCheckBoxCheckedProperty, value); }
}
// Using a DependencyProperty as the backing store for
//IsCheckBoxChecked. This enables animation, styling, binding, etc...
public static readonly DependencyProperty IsCheckBoxCheckedProperty =
DependencyProperty.Register("IsCheckBoxChecked", typeof(bool),
typeof(Window1), new UIPropertyMetadata(false));
public Window1()
{
InitializeComponent();
}
}
}
Beachten Sie, wie der einzige Code hinter der Abhängigkeitseigenschaft ist. Sowohl das Label als auch die Checkbox sind daran gebunden. Wenn sich das Kontrollkästchen ändert, ändert sich auch die Beschriftung.
Danke für die Antwort. Es erscheint "ElementName" als fehlende Schlüsselzutat. – Number8
Froh ich könnte helfen =) – Carlo
Dies funktioniert, aber es ist nicht wahr, dass "Sie eine Abhängigkeitseigenschaft dafür benötigen." Sehen Sie Lösungen unten ... Sie benötigen lediglich eine Eigenschaft in Ihrem Viewmodell, an die Sie sich binden möchten. –