我有一组自定义对象,我想将ItemsControl的index属性绑定到我的自定义对象中的一个int属性。我如何在模板中定义这样的绑定?我需要转换器吗?有什么建议?感谢
答案 0 :(得分:1)
第一个问题:ItemsControl没有Index或SelectedIndex属性。为此,您需要从Selector派生的东西(如ComboBox,ListBox等)。
在这种情况下,您可以使用SelectedValue和SelectedValuePath属性轻松完成您想要的任务。
public class MyCustomObject {
public int CustomObjectIndex {get;set;}
}
public class ViewModel : INotifyPropertyChanged {
public IEnumerable<MyCustomObject> Items {get { return something;} }
// Setting this must raise PropertyChanged.
public int SelectedIndex {get; set; }
}
<ComboBox ItemsSource={Binding Items}
SelectedValue={Binding SelectedIndex, Mode=TwoWay}
SelectedValuePath="CustomObjectIndex" />
答案 1 :(得分:0)
你想做的事情没有意义......
想象一下你有一个带有属性的自定义对象(name,wishedIndex)(wishedIndex作为整数或任何其他魔法来评估所希望的索引)
现在你有几个这样的对象 - &gt;几个希望的指数。
在您的架构中的某个地方,您做出了糟糕的设计选择。如果您发布更多代码,我们可以找到