0

在我的 XAML 中,我有代码

<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0">
    <StackPanel>
        <TextBlock Height="30" Name="tb1" Text="{Binding meetingX}" />
    </StackPanel>
</Grid>

在 .xaml.cs 属于上面的 .xaml 我有

    public static Meeting theMeeting;
    public string meetingX;

    public MeetingOverview()
    {
        InitializeComponent();
        theMeeting = (Meeting)App.meetings.ElementAt(App.selectedMeetingIndex);
        meetingX = theMeeting.MeetingName.ToString();
    }

    public string MeetingX
    {
        get
        {
            return meetingX;
        }
        set
        {
            if (value != meetingX)
            {
                Debug.WriteLine("set meetingXto: " + value.ToString()); 
                meetingX= value;
            }
        }
    }

文本出现空白,因此它没有读取 meetingX 中的值。我添加了一个 Debug.WriteLine 来检查 var 中是否有一些文本并且有。

任何人都可以给我一些关于如何使我打算做的工作的提示吗?

非常感谢,-代码

4

2 回答 2

1

您只能绑定到属性:

Text="{Binding meetingX}" <!-- --> Text="{Binding MeetingX}"

您需要设置视图的 DataContext:

public MeetingOverview()
    {
        theMeeting = (Meeting)App.meetings.ElementAt(App.selectedMeetingIndex);
        meetingX = theMeeting.MeetingName.ToString();
        this.DataContext = this;
        InitializeComponent();        
    }

如果值要改变,你需要在你的类上实现INotifyPropertyChanged 。你也应该看看 MVVM,因为这些信息应该放在 ViewModel 中。

这两个主题在整个网络上都有广泛的博客,所以我相信你内心的谷歌搜索器;)

希望这可以帮助,

呸。

于 2012-04-23T14:51:28.690 回答
0

将属性转换为DependencyProperty

public String MeetingX
{
  get { return (String)this.GetValue(MeetingXProperty); }
  set { this.SetValue(MeetingXProperty, value); } 
}

public static readonly DependencyProperty MeetingXProperty = DependencyProperty.Register(
    "MeetingX", typeof(String), typeof(MeetingOverview),new PropertyMetadata(""));
于 2012-04-23T14:58:50.750 回答