我现在花了几个小时试图了解如何进行数据绑定。 最初我正在关注一些示例,但他们都显示使用{Binding Source = {StaticResource myObject},Path = myObject.myProperty}进行数据绑定
或{Binding Path = myObject.myProperty}
这似乎没有任何东西绑定窗口内控制器内的Config对象。
如果我将绑定作为StaticResource进行绑定,它会绑定到Controller类的对象,但不是在窗口类中创建的对象,这个Config似乎是一个新的独立实例。这是我不理解的部分。如果有人可以解释或给我一些参考,我会非常感激。
这是一些非常简化的代码
Window1.cs
<Window x:Class="Sample.UI.Main"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:controller="clr-namespace:Sample.Controller"
mc:Ignorable="d"
Title="SampleApp" Height="600" Width="800" ResizeMode="NoResize" WindowStartupLocation="CenterScreen">
<Window.Resources>
<ResourceDictionary>
<controller:PublisherController x:Key="oController" />
</ResourceDictionary>
</Window.Resources>
<CheckBox x:Name="chkBoxShowRoom" Style="{StaticResource checkBoxTemplate}" Content="{StaticResource configShowRoom}" IsChecked="{Binding Source={StaticResource oController}, Path=Config.ShowRoom}"/>
然后是我的Window1.cs
public partial class Main : Window
{
public PublisherController Controller { get; set; }
然后是Controller.cs
public class PublisherController
{
public Configuration Config { get; set; }
然后是Configuration.cs
public class Configuration : AbstractEntity, INotifyPropertyChanged
{
private bool _ShowRoom;
public bool ShowRoom
{
get
{
return _ShowRoom;
}
set
{
if (value != _ShowRoom)
{
this._ShowRoom = value;
OnPropertyChanged();
}
}
}
...