我在表单的一个网格中有StackPanel
:
<StackPanel x:Name="panelWeelyBibleReading" Grid.Row="2" Grid.Column="0" Margin="2">
<Label>Bible Reading for Week:</Label>
<TextBox x:Name="textWeeklyBibleReading">PSALMS 60-68</TextBox>
</StackPanel>
<StackPanel Grid.Row="3" Grid.Column="0" Margin="2">
<Label>Opening Song:</Label>
<ComboBox x:Name="comboSongOpen" ItemsSource="{StaticResource SongTitles}">
<ComboBox.ItemTemplate>
<DataTemplate DataType="local:SongTitleItem">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number, StringFormat='000 - '}" />
<TextBlock Text="{Binding Title}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.MaxWidth>
<Binding Path="ActualWidth"
ElementName="textWeeklyBibleReading"/>
</ComboBox.MaxWidth>
</ComboBox>
</StackPanel>
在不同网格中的表格中,我有这个:
<StackPanel Grid.Row="3" Grid.Column="0" Margin="2">
<Label>Closing Song:</Label>
<ComboBox x:Name="comboSongEnd" ItemsSource="{StaticResource SongTitles}">
<ComboBox.ItemTemplate>
<DataTemplate DataType="local:SongTitleItem">
<StackPanel Orientation="Horizontal">
<TextBlock Text="{Binding Number, StringFormat='000 - '}" />
<TextBlock Text="{Binding Title}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
<ComboBox.MaxWidth>
<Binding Path="ActualWidth"
ElementName="panelWeeklyBibleReading.textWeeklyBibleReading"/>
</ComboBox.MaxWidth>
</ComboBox>
</StackPanel>
最初,我尝试在第二个组合中为"textWeeklyBibleReading"
使用相同的MaxWidth
。但它不起作用。没有警告。只是不起作用。所以我考虑将名称应用到之前的StackPanel
,希望我可以将它用作某种接入点。但它仍然无效。
所以我的问题是我需要在第二个组合上设置MaxWidth,它在不同的网格中,但使用在第一个网格组合上计算的值。我有道理吗?
如果有帮助,我会显示完整的表单标记。
答案 0 :(得分:1)
您应该修改为:
geo_point
因为没有<ComboBox.MaxWidth>
<Binding Path="Width"
ElementName="textWeeklyBibleReading"/>
</ComboBox.MaxWidth>
<Binding Path=Width, ElementName=textWeeklyBibleReading/>
等属性,而应该是ActualWidth
。并且无需编写容器名称Width
,只需编写您需要的panelWeeklyBibleReading
。
<强>更新强>
ElementName
您应该将<ComboBox.ItemTemplate>
<DataTemplate DataType="local:SongTitleItem">
<StackPanel Orientation="Horizontal" MaxWidth="{Binding Path=Width,
ElementName=textWeeklyBibleReading}">
<TextBlock Text="{Binding Number, StringFormat='000 - '}" />
<TextBlock Text="{Binding Title}" />
</StackPanel>
</DataTemplate>
</ComboBox.ItemTemplate>
MaxWidth
StackPanel
ComboBox
StackPanel``(<StackPanel Grid.Row="3" Grid.Column="0" Margin="2">)
ComboBox
Width
StackPanel
ComboBox
Width
ItemTemplate
ItemTemplate
Data/template
Width
ComboBox
StackPanel
1}}到你的DataTemplate
。因此,我建议将ComboBox的var arrcolor = [ paintRed, paintBlue, paintYellow ];
绑定到arrcolor[0]();
。由于()
有var arrcolor = [ paintRed, paintBlue, paintYellow];
arrcolor[2]();
,因此最好将var changeColor = {
paintRed :function(text){
text.style.color = "red";
},
paintBlue :function(text){
text.style.color = "blue";
},
paintYellow:function(text){
text.style.color = "yellow";
}
}
var text = document.getElementById('sometext');
changeColor.paintRed(text)
的{{1}}绑定到位于{{1}}的{{1}}。