我想将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的ItemsSource是正确的,但SelectedIndex和SelectedItem不起作用。我环顾网络,但没有找到任何解决方案,因为他们可能没有这个问题。
我正在使用.NET 4.5进行编译。
感谢名单!
答案 0 :(得分:0)
像这样更新DependencyProperty
public static readonly DependencyProperty SelectedProperty = DependencyProperty.Register(
SelectedPropertyName,
typeof(object),
typeof(TileContainer),
new FrameworkPropertyMetadata(null, FrameworkPropertyMetadataOptions.BindsTwoWayByDefault));