Wpf 从ItemSources中的属性绑定笔划

Wpf 从ItemSources中的属性绑定笔划,wpf,xaml,data-binding,Wpf,Xaml,Data Binding,我有一个对象集合,比如MyModel.cs。该集合称为Some。在MyModel中,它的属性颜色为笔刷类型 现在所有的颜色都是红色 现在我有 <MyControl: x:Name="control1" ItemsSource="{Binding Some}" Stroke="Red"> 但你看,我硬编码的中风。我想要的是 Stroke=“{Binding Some.Color}” 如何操作?该控件显示多个模型。如果要将笔划属性设置为其中一个的颜色,则需要指定哪一个,例如: &l

我有一个对象集合,比如MyModel.cs。该集合称为
Some
。在MyModel中,它的属性颜色为笔刷类型

现在所有的颜色都是红色

现在我有

<MyControl: x:Name="control1" ItemsSource="{Binding Some}" Stroke="Red">

但你看,我硬编码的中风。我想要的是
Stroke=“{Binding Some.Color}”

如何操作?

该控件显示多个模型。如果要将
笔划
属性设置为其中一个的
颜色
,则需要指定哪一个,例如:

<MyControl x:Name="control1" ItemsSource="{Binding Some}" Stroke="{Binding Some[0].Color}">

这将
Stroke
属性绑定到第一个
MyModel
对象的
Color
属性,假设
Some
集合具有索引器。

控件显示多个模型。如果要将
笔划
属性设置为其中一个的
颜色
,则需要指定哪一个,例如:

<MyControl x:Name="control1" ItemsSource="{Binding Some}" Stroke="{Binding Some[0].Color}">


这将
Stroke
属性绑定到第一个
MyModel
对象的
Color
属性,假设
Some
集合有一个索引器。

如果
MyControl
继承自
Selector
,则设置
IsSynchronizedWithCurrentItem=“True”
并绑定到
Some/Color
。斜杠或V形(
/
)表示使用集合中“当前项”的
颜色属性:

<MyControl 
    IsSynchronizedWithCurrentItem="True"
    x:Name="control1" 
    ItemsSource="{Binding Some}" 
    Stroke="{Binding Some/Color}"
    />

这将使用选定项目的颜色笔刷进行笔划。你不愿意提供任何关于你想做什么的提示,这是可以理解的,但这是一个公平的猜测


如果
MyControl
不是从
选择器继承的,请使用mm8的解决方案

如果
MyControl
继承自
Selector
,则设置
IsSynchronizedWithCurrentItem=“True”
并绑定到
Some/Color
。斜杠或V形(
/
)表示使用集合中“当前项”的
颜色属性:

<MyControl 
    IsSynchronizedWithCurrentItem="True"
    x:Name="control1" 
    ItemsSource="{Binding Some}" 
    Stroke="{Binding Some/Color}"
    />

这将使用选定项目的颜色笔刷进行笔划。你不愿意提供任何关于你想做什么的提示,这是可以理解的,但这是一个公平的猜测


如果
MyControl
不是从
选择器继承的,请使用mm8的解决方案

您需要将多重绑定与自定义转换器一起使用(以解决集合中的两个模型具有不同颜色的情况-选择哪种颜色?),或者将属性移动到更高级别(集合所在的位置)。MyControl是否具有类似列表框的SelectedItem?如果MyControl具有ItemsSource属性,则还应具有ItemTemplate。使用绑定到颜色的元素(例如,其背景属性)声明DataTemplate。您是尝试单独设置每个项目的笔划,还是尝试为整个
MyControl
设置一个笔划?这是一个区别,这是一个重要的区别。你必须振作起来,非常勇敢,并提供这些信息。我正试图为整个世界划上一笔MyControl@EdPlunkettYou需要将多重绑定与自定义转换器一起使用(以解决集合中的两个模型具有不同颜色的情况-选择哪个?),或者将属性移动到更高级别(集合所在的位置)。MyControl是否具有类似列表框的SelectedItem?如果MyControl具有ItemsSource属性,则它还应具有ItemTemplate。使用绑定到颜色的元素(例如,其背景属性)声明DataTemplate。您是尝试单独设置每个项目的笔划,还是尝试为整个
MyControl
设置一个笔划?这是一个区别,这是一个重要的区别。你必须振作起来,非常勇敢,并提供这些信息。我正试图为整个世界划上一笔MyControl@EdPlunkett