我有一个对象的集合说MyModel.cs。该集合称为Some
。在MyModel中,它有一个属性Color,它是Brush类型。
现在所有人的颜色都是红色。
现在我有了
<MyControl: x:Name="control1" ItemsSource="{Binding Some}" Stroke="Red">
但是你看到我对笔画进行了硬编码。我想要的是类似的东西
Stroke = "{Binding Some.Color}"
如何?
答案 0 :(得分:2)
控件显示几个模型。如果要将Stroke
属性设置为其中一个Color
,则需要指定哪一个,例如:
<MyControl x:Name="control1" ItemsSource="{Binding Some}" Stroke="{Binding Some[0].Color}">
这会将Stroke
属性绑定到第一个 Color
对象的MyModel
属性,假设Some
集合有一个索引器
答案 1 :(得分:1)
如果MyControl
继承自Selector
,请设置IsSynchronizedWithCurrentItem="True"
并绑定到Some/Color
。斜杠或virgule(/
)表示使用集合中“当前项”的Color
属性:
<MyControl
IsSynchronizedWithCurrentItem="True"
x:Name="control1"
ItemsSource="{Binding Some}"
Stroke="{Binding Some/Color}"
/>
这将使用所选项目的颜色笔刷进行描边。你很不情愿地提供关于你想要做什么的任何提示,但这是一个公平的猜测。
如果MyControl
未从Selector
继承,请使用mm8的解决方案。