Xaml 在Windows Phone 8.1上使用MVVM Light进行双向数据绑定
我正在尝试使用MVVM创建一个带有Xaml 在Windows Phone 8.1上使用MVVM Light进行双向数据绑定,xaml,mvvm,windows-phone-8.1,windows-store-apps,mvvm-light,Xaml,Mvvm,Windows Phone 8.1,Windows Store Apps,Mvvm Light,我正在尝试使用MVVM创建一个带有ListPickerLyout的自定义按钮。我想要达到的结果是: 我的问题是如何将SelectedItem从listpickerlyout绑定到内容TextBlock 我正在使用MVVM Light Windows Phone 8.1(应用商店Appp) 我的Xaml代码: <Button Background="White" HorizontalAlignment="Stretch" HorizontalContentAlignmen
ListPickerLyout
的自定义按钮。我想要达到的结果是:
我的问题是如何将SelectedItem
从listpickerlyout
绑定到内容TextBlock
我正在使用MVVM Light Windows Phone 8.1(应用商店Appp)
我的Xaml代码:
<Button Background="White"
HorizontalAlignment="Stretch"
HorizontalContentAlignment="Stretch">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="40" />
</Grid.ColumnDefinitions>
<!-- Content TextBlock -->
<TextBlock Text="{Binding MyVM.SelectedItem, Mode=TwoWay}"
Style="{StaticResource DefaultTextBlock}"
FontSize="22"
HorizontalAlignment="Left"
VerticalAlignment="Center"
Margin="10, 0, 0, 0"/>
<Image Height="20" Grid.Column="1"
VerticalAlignment="Center" HorizontalAlignment="Center"
Source="../Assets/icons/arrow_down.png"/>
</Grid>
<Button.Flyout>
<ListPickerFlyout PickerFlyoutBase.Title="$Items$"
ItemsSource="{Binding MyVM.listItems}"
SelectedItem="{Binding MyVM.SelectedItem, Mode=TwoWay}" >
<ListPickerFlyout.ItemTemplate>
<DataTemplate>
<StackPanel>
<TextBlock Text="{Binding}"
Style="{StaticResource DefaultTextBlock}"
FontSize="22"/>
</StackPanel>
</DataTemplate>
</ListPickerFlyout.ItemTemplate>
</ListPickerFlyout>
</Button.Flyout>
编辑: 解决了这个问题,我忘记添加
RaisePropertyChanged(“SelectedItem”)代码>
因此,在我的MVVM类中:
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem != value)
{
_selectedItem = value;
RaisePropertyChanged("SelectedItem");
}
}
}
只需添加RaisePropertyChanged(“SelectedItem”)
完整代码:
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem != value)
{
_selectedItem = value;
RaisePropertyChanged("SelectedItem");
}
}
}
只需添加RaisePropertyChanged(“SelectedItem”)
完整代码:
private string _selectedItem;
public string SelectedItem
{
get { return _selectedItem; }
set
{
if (_selectedItem != value)
{
_selectedItem = value;
RaisePropertyChanged("SelectedItem");
}
}
}
看来你已经做到了。如何设置SelectedItem?您希望文本块中有什么内容?运行应用程序时,文本块中有什么?欢迎使用StackOverflow Diego。请遵循在中找到的标记指南,不要将标记强制添加到问题标题中,除非它们是标题的自然部分。我已经将你的问题标题编辑成更自然的形式。看来你已经做到了。如何设置SelectedItem?您希望文本块中有什么内容?运行应用程序时,文本块中有什么?欢迎使用StackOverflow Diego。请遵循在中找到的标记指南,不要将标记强制添加到问题标题中,除非它们是标题的自然部分。我已将你的问题标题编辑成更自然的形式。