[英]Windows 10 x:Bind to SelectedItem
我正在尝试移植/采用我的Windows RT应用程序到WIndows10,我正在尝试新的绑定x:Bind。
到目前为止,我能够绑定到我的ViewModel属性和其他Viewelements。 但现在我正在尝试将TextBox的文本绑定到GridView的SelectedItem。
在经典绑定中,我就是这样做的。
<TextBox x:Name="tb_textgroup"
Grid.Row="1"
PlaceholderText="Change Groupname"
Text="{Binding UpdateSourceTrigger=PropertyChanged,
ElementName=gv_textgroup,
Mode=TwoWay,Path=SelectedItem.bezeich}"
IsEnabled="{Binding UpdateSourceTrigger=PropertyChanged,
ElementName=gv_textgroup,
Mode=TwoWay,Path=SelectedItem.edit_activated}"
Margin="20,10,20,0"
/>
我正在尝试
但它没有奏效......任何想法?
并且有人可以解释我如何处理“DependencyProperty”。 我从“build 2015”中看到了viedo,并提供了示例代码。 但它对我说什么......我是一个新手......
非常感谢您的帮助
我不确定为什么会这样,但是如果你创建一个对象到对象的转换器, x:Bind
可以在任何SelectedItem
上进行双向转换。
public class NoopConverter : IValueConverter
{
public object Convert(object value, Type targetType, object parameter, string language)
{
return value;
}
public object ConvertBack(object value, Type targetType, object parameter, string language)
{
return value;
}
}
你可以像这样使用它:
<ListView ItemsSource="{x:Bind ViewModel.Items}"
SelectedItem="{x:Bind ViewModel.SelectedItem, Mode=TwoWay, Converter={StaticResource NoopConverter}}"
...
特别感谢runceel的公开样本。
他用日语解释了这里 。
您不能在GridView的SelectedItem上使用x:Bind。 这是因为SelectedItem是一个对象,所以它可以是任何东西。 x:绑定需要有实际的类/接口。 x:Bind不使用反射来查找像Binding这样的属性。
您可以通过x完成此操作:将GridView的SelectedItem绑定到视图模型,然后将x:绑定到TextBlock中的那个。 我不确定这对你的表现有多大帮助。
public class ViewModel
{
public MyItem SelectedItem { get; set; } //fire prop changed
}
<GridView SelectedItem="{x:Bind SelectedItem, mode=Twoway}"/>
<TextBlock Text="{x:Bind ViewModel.SelectedItem.bezeich}"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.