【问题标题】:Binding to code behind throws exception绑定到后面的代码会引发异常
【发布时间】:2016-04-02 06:58:22
【问题描述】:

我已经声明了一个命名空间如下(仅显示相关代码)

<Page 
     xmlns:local="using:ABC"
 >

我的页面资源如下

 <Page.Resources>
    <local:Login x:Key="mykey"/>
 </Page.Resources>

这里的 Login 是命名空间 ABC 中的类,这个类是我的名为 Login.xaml.cs 的代码隐藏文件

        <StackPanel x:Name="mystackpanel" DataContext="{StaticResource mykey}" >

            <TextBox PlaceholderText="Email or Mobile Number" Text="{Binding Mobile_Email, Mode=TwoWay}"/>

            <TextBox PlaceholderText="Password" Text="{Binding Password, Mode=TwoWay}"/>

            <Button Content="Login" Click="LoginButton_Click"/>

        </StackPanel>

我在 Login.xaml.cs 类后面的代码有两个公共属性,称为 Mobile_Email 和 Password。

当我在类构造函数中使用它时

mystackpanel.DataContext=this;

绑定有效,但在页面资源中声明这样的资源会给我 stackoverflow 异常。

我的问题是为什么我得到一个 stackoverflow 异常以及如何将我在 xaml 中的 stackpanel 与类 Login 后面的代码绑定

【问题讨论】:

  • 发布声明你的两个属性的代码
  • 这样没有问题
  • 我说过,当我使用 mystackpanel.DataContext=this 时,会填充属性
  • 您的 getter 或 setter 不正确。所以你得到stackoverflow异常
  • 好的,我来发帖

标签: xaml windows-phone-8 winrt-xaml win-universal-app


【解决方案1】:

试试这个而不是 page.resources。为您的页面元素命名。然后将此绑定用于堆栈面板数据上下文。

 {Binding ElementName=pagename,Path = DataContext}

【讨论】:

    猜你喜欢
    • 2018-05-08
    • 1970-01-01
    • 2018-11-24
    • 2011-01-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-02-19
    相关资源
    最近更新 更多