这是我的代码。这是做什么的。我有一个带有文本书名的文本框(按钮),当我点击它时,我可以使用绑定更改文本框中的文本。但现在我为作者名称添加了另一个文本框,我不知道如何绑定它。如果我使用相同的方法,如书名,它不起作用或书名中的文字也是书籍作者。所有文本都通过弹出设置页面进行更改。
我的来源:https://dl.dropbox.com/u/40039421/App1.rar。 图片在这里:https://dl.dropbox.com/u/40039421/helpp.png
public partial class MainPage : INotifyPropertyChanged
{
private ObservableCollection<Book> _books = new ObservableCollection<Book>();
public ObservableCollection<Book> AllBooks
{
get { return _books; }
set { _books = value; }
}
...
private void InitializeData()
{
var bookName1 = new Book { Id = 1, BookName = "Small red apple",AuthorName = "Daniel"};
...
AllBooks.Add(bookName1);
...
OnPropertyChanged("AllBooks");
}
public event PropertyChangedEventHandler PropertyChanged;
public void OnPropertyChanged(string propertyName)
{
if (PropertyChanged != null)
{
PropertyChanged(null, new PropertyChangedEventArgs(propertyName));
}
}
private void btnGreenBook_Click(object sender, RoutedEventArgs e)
{
var button = sender as Button;
if (button != null)
{
Popup popup = new Popup();
popup.VerticalOffset = 30;
PopupSettingPage control = new PopupSettingPage();
popup.Child = control;
popup.IsOpen = true;
control.btnSave.Click += (s, args) =>
{
var id = Convert.ToInt32(button.Tag);
var book = AllBooks.FirstOrDefault(sub => sub.Id == id);
if (book != null)
{
book.BookName = control.BookName;
book.OnPropertyChanged("BookName");
}
popup.IsOpen = false;
};
...
答案 0 :(得分:0)
哦,亲爱的,这是一个简单的错误:)
您忘了在PopupSettingsPage.xaml的Xaml中添加AuthorName
<TextBox x:Name="tbInputAuthorName" Text="{Binding AuthorName, Mode=TwoWay}" VerticalAlignment="Center"/>
然后在MainPage中执行此操作
book.BookName = control.BookName;
book.OnPropertyChanged("BookName");
book.AuthorName = control.AuthorName;
book.OnPropertyChanged("AuthorName");
基于您的评论的补充答案:
为了实现这一点,您必须删除列表框中的第二个堆栈面板。而是使用WrapPanel控件。搜索如何使用WrapPanel for WindowsPhone。
然后你必须找到一些方法将背景设置为红色或绿色。祝你好运
答案 1 :(得分:0)
好的,我使用换行面板,但问题仍然存在。我有两个全景项目(我从第1项发布代码,第2项只在第二个全景页面上显示相同的代码),如果我将一些值保存到全景项目1中的项目之一,问题仍然存在这个值在全景项目中也是如此2,我不知道怎么做。逻辑单击全景1项目更改值在panoam 1项目中,单击全景2项目更改全景2项目值。它看起来像全景项目1具有相同的ID,如全景项目2.这里是完整的来源:https://dl.dropbox.com/u/40039421/App1SecondEdit.rar
<Grid x:Name="LayoutRoot" Background="Transparent">
<!--Panorama control-->
<phone:Panorama>
<!--Panorama item 1-->
<phone:PanoramaItem Header="Test">
<Grid x:Name="PanelPanoramaItem1"
Grid.Row="1"
Margin="25,0,12,0">
<ListBox ItemsSource="{Binding AllBooks}">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<toolkit:WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Button Width="140"
Height="140"
toolkit:TiltEffect.IsTiltEnabled="True" Margin="0,0,0,5" Click="Button_Click_1" Tag="{Binding Id}" >
<Button.Template>
<ControlTemplate>
<Grid Background="Chartreuse">
<TextBlock Foreground="Black" Text="{Binding BookName}" />
</Grid>
</ControlTemplate>
</Button.Template>
</Button>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
</Grid>
</phone:PanoramaItem>
<!-- END Panorama item 1 -->