Window属性和Checkbox数据绑定xaml

时间:2017-11-17 21:06:15

标签: c# xaml data-binding

我现在花了几个小时试图了解如何进行数据绑定。 最初我正在关注一些示例,但他们都显示使用{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();
                }
            }
        }
...

0 个答案:

没有答案