Windows 10 x:绑定到SelectedItem

我试图将我的Windows RT应用程序移植到WIndows10,并尝试使用新的绑定x:绑定。

到目前为止,我可以绑定到我的ViewModel属性和其他Viewelements。 但现在我试图将文本框的文本绑定到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"
                             />

我正在尝试

  • Text =“{x:Bind gv_textgroup.SelectedItem.bezeich,Mode = TwoWay}”
  • Text =“{x:Bind textgroup [gv_textgroup.SelectedIndex] .bezeich,Mode = TwoWay}”
  • 其中textgroup是我所有元素的viewmodelclass
  • 但是没有任何工作......任何想法?

    有人可以解释我如何处理“DependencyProperty”。 我观看了“build 2015”的视频,并有示例代码。 但它对我说什么......我是一个新手......

    非常感谢您的帮助


    我不知道为什么这会起作用,但是如果您创建了一个对象到对象的转换器, 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:绑定不使用反射来查找像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}"
    
    链接地址: http://www.djcxy.com/p/44679.html

    上一篇: Windows 10 x:Bind to SelectedItem

    下一篇: WPF binding update notification for nested property when parent property changes