none
WPF C# 该怎么把CLR中的类绑定到DataContext呢? RRS feed

  • 问题

  • 先感谢一下愿意提供帮助的,这个问题让我纠结了好久,始终没法让绑定的数据显示出来

    这是用Modern UI for WPF创建的

    我在App.xaml.cs有一个accountInfo

    public static
    AccountInfo[] accountInfo = new AccountInfo[512];

           
    public class AccountInfo : INotifyPropertyChanged

           
    {

               
    public string email;

               
    public int credit;

               
    public AccountInfo(int i)

               
    {

                 
    //....

               
    }

               
    public event PropertyChangedEventHandler PropertyChanged;

               
    private int i;

           
    }

    程序载入后会逐一实例化accountInfo

    这是item.xmal

    public partial class
    item : UserControl, IContent

        {

           
    public item()

           
    {

               
    InitializeComponent();

           
    }

           
    public void
    OnFragmentNavigation(FirstFloor.ModernUI.Windows.Navigation.FragmentNavigationEventArgs
    e)

           
    {

    //导航到这个页面的时候执行,在这里把页面对应的accountaccountInfo绑定到Grid.DataContext

               
    AccountID = Convert.ToInt32(e.Fragment);

               
    Binding bd = new Binding();

               
    bd.Source = App.accountInfo[AccountID];

               
    Grid.SetBinding(Grid.DataContextProperty, bd);

           
    }

    }

    item.xaml

    <Grid
    Style="{StaticResource ContentRoot}" x:Name="Grid">

           
    <ScrollViewer HorizontalAlignment="Right"
    VerticalAlignment="Bottom">

           
    </ScrollViewer>

         
    <TextBlock x:Name="header" Style="{StaticResource
    Heading2}" Margin="0,0,0,8" Text="{Binding email}"
    />

    </Grid>

    这里把email绑定到这个TextBlock

    但是……TextBlock不显示内容呀,我试过Grid.DataContext = App.accountInfo[AccountID];后也不显示

    我应该怎么弄呢


    2014年8月13日 15:14

答案

  • 竟超 你好,

    1. 首先需要明确一点,你在Code Behind中能否获取到当前的DataContext,并且不为空。这样绑定到XAML时才能正确显示。

    2. DataContext绑定的是一个集合类,从你的代码中看,你绑定到一个非集合类上面了。

    希望我的回复能够帮助你!

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月15日 5:56
    版主
  • 谢谢,终于还是有人回复了哈,其实我在英文区发的帖子已经被解决了,之前想来这里说一下的不过发现不知道我为什么说我的账号没有通过验证不能回URL,所以后来就没管了,不好意思

    问题还是我没有完全理解Property这个东西,我应该用public string email {get; set;}才对的

    2014年8月15日 15:18

全部回复

  • 竟超 你好,

    1. 首先需要明确一点,你在Code Behind中能否获取到当前的DataContext,并且不为空。这样绑定到XAML时才能正确显示。

    2. DataContext绑定的是一个集合类,从你的代码中看,你绑定到一个非集合类上面了。

    希望我的回复能够帮助你!

    谢谢!


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.

    2014年8月15日 5:56
    版主
  • 谢谢,终于还是有人回复了哈,其实我在英文区发的帖子已经被解决了,之前想来这里说一下的不过发现不知道我为什么说我的账号没有通过验证不能回URL,所以后来就没管了,不好意思

    问题还是我没有完全理解Property这个东西,我应该用public string email {get; set;}才对的

    2014年8月15日 15:18