使用UWP主详细信息更改详细信息项
我正在学习并使用“Windows模板工作室”创建一个主细节项目 现在我想更改细节,并希望在主控中显示更改。 如下 但我不知道怎么做? 我已经将示例代码上传到GitHub。使用UWP主详细信息更改详细信息项,uwp,uwp-xaml,Uwp,Uwp Xaml,我正在学习并使用“Windows模板工作室”创建一个主细节项目 现在我想更改细节,并希望在主控中显示更改。 如下 但我不知道怎么做? 我已经将示例代码上传到GitHub。 任何人都可以更改示例代码,非常感谢 绑定到主视图的Order项需要通知视图属性更改,因此应该实现INotifyPropertyChanged 为了在公司属性更改时自动更新列表上的公司字段,您需要进行以下更改- 您需要将Mode=OneWay添加到MasterDetailPage中的绑定中 因为x:Bind中的默认模式是On
任何人都可以更改示例代码,非常感谢 绑定到主视图的
Order
项需要通知视图属性更改,因此应该实现INotifyPropertyChanged
为了在
公司
属性更改时自动更新列表上的公司字段,您需要进行以下更改-
Mode=OneWay
添加到MasterDetailPage中的绑定中
因为x:Bind
中的默认模式是OneTime
,即一次
该值已设置,将永远不会更新
<TextBlock Grid.Row="1"
Text="{x:Bind Company, Mode=OneWay}"
Style="{StaticResource ListSubTitleStyle}" />
文本框中,您需要
UpdateSourceTrigger=PropertyChanged
在绑定中,因为您需要
按每个键向下触发更新。不幸的是,事实并非如此
在x:Bind
中受支持,因此您必须更改回使用
传统的绑定
。注意:一旦您更改了它,您也将
需要给你的UserControl
一个名字,比如说Self
,这样你就可以使用
ElementName
查找相同的绑定表达式(即。
MasterMenuItem.公司)
现在运行你的应用程序,它应该可以正常工作。:) @Justin XL求救,Justin。我忘了第一步…哈哈
public class Order: INotifyPropertyChanged
{
private string _company;
public string Company
{
get => _company;
set
{
if (_company == value) return;
_company = value;
OnPropertyChanged();
}
}
public event PropertyChangedEventHandler PropertyChanged;
[NotifyPropertyChangedInvocator]
protected virtual void OnPropertyChanged([CallerMemberName] string propertyName = null)
{
PropertyChanged?.Invoke(this, new PropertyChangedEventArgs(propertyName));
}
}
<UserControl x:Class="App2.Views.MasterDetailDetailControl"
...
x:Name="Self">
<TextBox Text="{Binding MasterMenuItem.Company, ElementName=Self, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"