1
我正在一個WPF頁面上有以下幾點:WPF:在禁用物品界的ItemsControl
<ItemsControl ItemsSource="{Binding Peopl.PhoneNums}" x:Name="PhoneList">
<ItemsControl.ItemTemplate>
<DataTemplate>
<Grid>
<StackPanel Orientation="Horizontal" Margin="0,0,0,0" x:Name="PhoneEntry">
<TextBlock Text="123-456-78901"/>
<ComboBox ...>
</StackPanel>
</Grid>
</DataTemplate>
</ItemsControl.ItemTemplate>
</ItemsControl>
可以有多個stackpanels,每一個獨特的電話號碼;在後面的代碼中,每個電話號碼都有一個指示是否應該啓用的標誌;我希望能夠以啓用基於該標記堆棧面板中的每個條目,但我被困在訪問它....
我:
foreach (Phone phone in PhoneList.ItemsSource)
{
if (phone.ShouldBeDisabled)
{
int index = PhoneList.Items.IndexOf(phone);
PhoneList.IsEnabled = false;
//this disables the entire control;
// I can't access "PhoneEntry" here... hmm
}
}
有沒有一種方法來禁用只有一個一次進入?我怎樣才能訪問PhoneEntry
?我應該嘗試根據綁定值禁用每個堆棧面板條目嗎?
不要在代碼中這樣做。每個PhoneEntry StackPanel的DataContext都應該是您的Phone項目。將您的禁用屬性綁定到ShouldBeDisabled應該是答案。視圖關注視圖模型,視圖模型不操縱視圖。 – 2015-02-05 17:01:20