Listbox SelectedItem绑定到UserControl(Listbox SelectedItem binding to UserControl)

我想将ListBox SelectedItem绑定到

这是我的UserControl.xaml中的Listbox代码

Style x:Key="listbox" TargetType="ListBox"> <!-- Region Setter Properties --> <Setter Property="SelectionMode" Value="Single" /> <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type program:UserControl}}, Path=Source}" />

`<ListBox Name="ListBox" Grid.Row="1" SelectedIndex="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type program:UserControl}}, Path=SelectedIndex}" SelectedItem="{Binding Path=(program:UserControl.SelectedItem), RelativeSource={RelativeSource AncestorType={x:Type program:UserControl}}}" Style="{DynamicResource listbox}" />`

在我的UserControl.xaml.cs中

public object SelectedItem { get { return (object) GetValue(SelectedItemProperty); } set { SetValue(SelectedItemProperty, value); } } public int SelectedIndex { get { return (int) GetValue(SelectedIndexProperty); } set { SetValue(SelectedIndexProperty, value); } } /// <summary> /// Identifies the <see cref="Selected" /> dependency property. /// </summary> public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register( SelectedPropertyName, typeof(object), typeof(TileContainer), new UIPropertyMetadata(default(object))); public static readonly DependencyProperty SelectedItemProperty = DependencyProperty.Register("SelectedItem", typeof (object), typeof (UserControl), new PropertyMetadata(default(object))); public static readonly DependencyProperty SelectedIndexProperty = DependencyProperty.Register("SelectedIndex", typeof (int), typeof (UserControl), new PropertyMetadata(default(int)));

通常它工作,我的ListBox的FactSource正确采取,但SelectedIndex和SelectedItem不起作用。 我环顾网络,但我找不到任何解决方案,因为他们可能没有这个问题。

我正在使用.NET 4.5进行编译。

感谢名单!

I want to bind a ListBox SelectedItem to

This is my code for Listbox in my UserControl.xaml

Style x:Key="listbox" TargetType="ListBox"> <!-- Region Setter Properties --> <Setter Property="SelectionMode" Value="Single" /> <Setter Property="ItemsSource" Value="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type program:UserControl}}, Path=Source}" />

`<ListBox Name="ListBox" Grid.Row="1" SelectedIndex="{Binding RelativeSource={RelativeSource FindAncestor, AncestorType={x:Type program:UserControl}}, Path=SelectedIndex}" SelectedItem="{Binding Path=(program:UserControl.SelectedItem), RelativeSource={RelativeSource AncestorType={x:Type program:UserControl}}}" Style="{DynamicResource listbox}" />`

In my UserControl.xaml.cs

public object SelectedItem { get { return (object) GetValue(SelectedItemProperty); } set { SetValue(SelectedItemProperty, value); } } public int SelectedIndex { get { return (int) GetValue(SelectedIndexProperty); } set { SetValue(SelectedIndexProperty, value); } } /// <summary> /// Identifies the <see cref="Selected" /> dependency property. /// </summary> public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register( SelectedPropertyName, typeof(object), typeof(TileContainer), new UIPropertyMetadata(default(object))); public static readonly DependencyProperty SelectedItemProperty = DependencyProperty.Register("SelectedItem", typeof (object), typeof (UserControl), new PropertyMetadata(default(object))); public static readonly DependencyProperty SelectedIndexProperty = DependencyProperty.Register("SelectedIndex", typeof (int), typeof (UserControl), new PropertyMetadata(default(int)));

Normally it works, infact ItemsSource of my ListBox is correctly taken but SelectedIndex and SelectedItem don't work. I looked around the net but i didn't find any solution because maybe they don't have this issue.

I'm compiling with .NET 4.5 .

Thanx!

最满意答案

像这样更新DependencyProperty

public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register( SelectedPropertyName, typeof(object), typeof(TileContainer), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

Update you DependencyProperty like so

public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register( SelectedPropertyName, typeof(object), typeof(TileContainer), new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));

更多推荐

SelectedItem,ListBox,UserControl,SelectedIndex,电脑培训,计算机培训,IT培训"/> &l