Silverlight 自定义控件中的数据绑定
我正在开发自定义控件 以下代码是用generic.xaml编写的Silverlight 自定义控件中的数据绑定,silverlight,data-binding,listbox,custom-controls,Silverlight,Data Binding,Listbox,Custom Controls,我正在开发自定义控件 以下代码是用generic.xaml编写的 <Style TargetType="local:TwoListBox"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="local:TwoListBox"> <Sta
<Style TargetType="local:TwoListBox">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="local:TwoListBox">
<StackPanel Orientation="Horizontal">
<ListBox x:name="ListBoxForBasic" ItemsSource="{Binding}" DisplayMemberPath="NumValue" Margin="10"/>
<ListBox x:name="ListBoxForSorting" ItemsSource="{Binding}" DisplayMemberPath="NumValue" Margin="10"/>
</StackPanel>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
这很简单,我有两个ListBox,我正在尝试将以下数据绑定到两个ListBox
public class SampleData
{
public int Num { get; set; }
public int NumValue { get; set; }
}
public class SampleDataList : List<SampleData>
{
public SampleDataList()
{
Add(new SampleData{ Num=1, NumValue=10});
Add(new SampleData { Num = 2, NumValue = 50 });
Add(new SampleData { Num = 3, NumValue = 20 });
Add(new SampleData { Num = 4, NumValue = 40 });
Add(new SampleData { Num = 5, NumValue = 30 });
}
}
公共类样本数据
{
公共int Num{get;set;}
public int NumValue{get;set;}
}
公共类SampleDataList:List
{
公共样本数据列表()
{
添加(新样本数据{Num=1,NumValue=10});
添加(新样本数据{Num=2,NumValue=50});
添加(新样本数据{Num=3,NumValue=20});
添加(新样本数据{Num=4,NumValue=40});
添加(新样本数据{Num=5,NumValue=30});
}
}
在MainPage.xaml中,我使用TwoListBox自定义控件的示例数据,如下所示:
<local:TwoListBox DataContext="{StaticResource sampleData}"/>
如果点击F5,TwoListBox自定义控件如下所示:
<local:TwoListBox DataContext="{StaticResource sampleData}"/>
10 1050 50
20
40
30 30
但是,我希望像这样绑定第二个ListBox(ListBoxForSorting)的排序数据:
<local:TwoListBox DataContext="{StaticResource sampleData}"/>
10 1050 20
20 30
40
30 50
在这种情况下,我应该为此做些什么
提前谢谢对不起,我解释得不够充分。我试着按NumValue排序。忘了Num属性吧。如果我像你说的那样创建属性,那么如何从generic.xaml访问该属性?
public SampleDataList()
{
Add(new SampleData{ Num=10, NumValue=10});
Add(new SampleData { Num = 20, NumValue = 50 });
Add(new SampleData { Num = 30, NumValue = 20 });
Add(new SampleData { Num = 40, NumValue = 40 });
Add(new SampleData { Num = 50, NumValue = 30 });
}
<ListBox x:name="ListBoxForBasic" ItemsSource="{Binding}" DisplayMemberPath="NumValue" Margin="10"/>
<ListBox x:name="ListBoxForSorting" ItemsSource="{Binding}" DisplayMemberPath="Num" Margin="10"/>