- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我在 Windows Phone 7 应用程序中有一个页面,用户可以在其中编辑或删除事务对象。 Transaction 对象是一个 Linq-to-Sql 类,它与 Account 类和 Category 类有关系。在该页面中,我使用 ListPicker 让用户为给定交易选择帐户和类别,如下所示:
<toolkit:ListPicker Grid.Row="1" FullModeHeader="Choose the Account" FullModeItemTemplate="{StaticResource FullModeItemTemplate}" ExpansionMode="FullScreenOnly" Background="#26000000" Margin="10,0,10,0" Name="Account" SelectedItem="{Binding Account, Mode=TwoWay}" Tap="ListPicker_Tap" />
<toolkit:ListPicker Grid.Row="7" FullModeHeader="Choose the Category" FullModeItemTemplate="{StaticResource FullModeItemTemplate}" ExpansionMode="FullScreenOnly" Background="#26000000" Margin="10,0,10,0" Name="Category" SelectedItem="{Binding Category, Mode=TwoWay}" Tap="ListPicker_Tap" />
ListPicker_Tap 事件修复了 2011 年 8 月版的 Windows Phone WPF 工具包中的一个错误,简单来说就是:
private void ListPicker_Tap(object sender, System.Windows.Input.GestureEventArgs e)
{
ListPicker lp = (ListPicker)sender;
lp.Open();
}
如果用户编辑事务,一切都很好,但如果用户尝试删除它,我会收到一条错误消息,指出“SelectedItem 必须始终设置为有效值”。
如果用户单击 TransactionPage.xaml.cs 中应用栏中的删除按钮,则代码如下:
private void appBarDelete_Click(object sender, EventArgs e)
{
MessageBoxResult result = MessageBox.Show("Are you sure?\n", "Confirm", MessageBoxButton.OKCancel);
if (result == MessageBoxResult.OK)
{
App.ViewModel.DeleteTransaction(transaction);
}
NavigationService.GoBack();
}
我的 ViewModel.DeleteTransaction 方法:
public void DeleteTransaction(Transaction transaction)
{
AllTransactions.Remove(transaction);
transactionRepository.Delete(transaction);
}
我的 transactionRepository.Delete 方法:
public void Delete(Transaction transaction)
{
Context.Transactions.DeleteOnSubmit(transaction);
Context.SubmitChanges();
}
我在 Context.SubmitChanges() 执行中收到错误,调试指向 Transaction 类中的 NotifyPropertyChanged,我收到错误的行是这样的:
protected virtual void SendPropertyChanged(String propertyName)
{
if ((this.PropertyChanged != null))
{
this.PropertyChanged(this, new PropertyChangedEventArgs(propertyName));
}
}
在 propertyName 属性中,值为“Category”。貌似删除对象的时候发送了category和accounts的propertychanged事件,因为listpicker是TwoWay模式,处理起来有些麻烦。我该如何解决?我需要一些帮助。
最佳答案
此错误也可能是由 XAML 属性的顺序引起的:
这不起作用(抛出异常,因为在设置 SelectedItem 时 ItemsSource 为 null):
<toolkit:ListPicker DisplayMemberPath="Title" SelectionMode="Single"
SelectedItem="{Binding SelectedCategory, Mode=TwoWay}"
ItemsSource="{Binding Categories}" />
这是因为 itemssource 首先被初始化:
<toolkit:ListPicker DisplayMemberPath="Title" SelectionMode="Single"
ItemsSource="{Binding Categories}"
SelectedItem="{Binding SelectedCategory, Mode=TwoWay}" />
关于c# - Listpicker 错误 SelectedItem 必须始终设置为有效值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7719682/
我有 ListPicker,其中每个项目都是乐器。只能同时选择一项。在乐器名称旁边的每个项目中还有播放预览样本的按钮。 列表选择器模板:
有谁知道列表选择器中存在一个错误,当扩展模式仅设置为完整模式时,该错误会阻止列表选择器更改所选项目。它总是由于某种原因返回到所选的默认项目。 最佳答案 我假设您的 Page_Loaded 中有一些代码
我已经使用 WP7 一段时间了,正在大量使用 listPicker/DatePicker。我讨厌它的设计。我使用 liskPicker 的属性 ExpansionMode="FullScreenOnl
我有一个自定义实体的集合,该集合使用 ItemsSource 属性绑定(bind)到列表选择器。我还将选择模式设置为 Multiple,因此 FullMode 选择器中的每个项目都有一个复选框。这种选
我正在开发 Windows Phone 8.1 silverlight 应用。 我需要创建一个 ListPicker 并在全屏模式下打开它,但总是会出现错误,因为没有在列表选择器元素上检测到 Expa
我想确定当前在 ListPicker 中选择的项目的名称。我不确定如何在 SelectionChanged 事件中获取项目的名称。 XAML
ListPicker 是来自 WP8 Toolkit. 的控件 代码: private void field_SelectionChanged(object sender, SelectionChan
我正在使用多选 ListPicker(7.1/Mango 控制工具包中的新工具,从 2011 年 11 月开始)。 我的代码如下 - ListPicker 的“普通”用例,不同之处在于我使用新列表初始
默认情况下 ListPicker占用大量屏幕空间。有没有办法让它表现得像 HTML 的隐喻什么时候显示在手机上? 我用过 this react native plugin之前,这正是我想要的比喻,但对
在我看来,ListPicker 列表项是 Not Acceptable 小点击目标;当然,它们的高度小于 Microsoft 发布的样式指南推荐的最小尺寸,而且 Microsoft 已采取以更大的字体
我试图让列表选择器下拉菜单进入全屏模式。当我进入全屏扩展模式时,它会在第一次机会时崩溃。下面是我的代码: C#: monthCat.SetValue(Microsoft.Phone.Controls.
我是 App Inventor 的初学者,我不知道我在使用 listpicker 时做错了什么。我正在尝试创建和应用程序来重现我存储在服务器中的音乐,但是当我显示 listpicker 时,我无法单击
我在 Nativescript-Angular 应用程序中有一个 RadDataForm。 此 RadDataForm 显示了我的一个属性的列表选择器。 我已经阅读了有关 RadDataForm 组件
我有一个带有 SelectionChanged 事件的 ListPicker。显然,我希望 SelectionChange 事件仅在我更改选择时触发,但在我的情况下,它也会在我加载页面时触发。 代码:
大家好。我有以下问题: 我有一个在 XAML 中声明了 x:Name="Backgroundlist"的列表选择器,它工作正常。 其项目声明如下: public MainPage() { In
我在下面使用更改 ListPicker 更改为完整模式时的背景颜色。但我只看到黑屏。
我在 Windows Phone 7 应用程序中有一个页面,用户可以在其中编辑或删除事务对象。 Transaction 对象是一个 Linq-to-Sql 类,它与 Account 类和 Catego
我想用我在名为 FriendsClass 的数据库中的条目填充我的 ListPicker。 我的 XAML: 我的
我正在使用 ListPicker,但很难让设计正常工作。我已经包括了我做过的测试:
我正在开发一个 Windows Phone 8 应用程序。我的应用程序使用来自 Tookit 的 ListPicker。我有问题的代码如下所示: private void m
我是一名优秀的程序员,十分优秀!