爲了縮短比例,我們假設我有一個帶有組合框的Datagrid和一個組合框。我想根據我的視圖模型與第一組合選擇Silverlight DataGrid顯示或隱藏選擇組合框的控件
<sdk:DataGridTemplateColumn.CellTemplate>
<DataTemplate>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<ComboBox x:Name="cboThenConstOrCol" SelectedIndex="0" SelectedItem="{Binding Source={StaticResource VM}, Path=cboElseSelectedItem, Mode=TwoWay}">
<ComboBoxItem Content="None"/>
<ComboBoxItem Content="Const" />
<ComboBoxItem Content="Col"/>
</ComboBox>
<TextBox Grid.Column="1" Text="{Binding ElseConst}" Visibility="{Binding Source={StaticResource VM}, Path= IsVisibleElseConst}" IsTabStop="{Binding Source={StaticResource VM}, Path=isElseConstTabStop}"></TextBox>
<ComboBox Grid.Column="1" ItemsSource="{Binding Source={StaticResource VM}, Path=Fields,Mode=OneWay}" Visibility="{Binding Source={StaticResource VM}, Path= IsVisibleElseCol}" DisplayMemberPath="FieldName" />
</Grid>
</DataTemplate>
</sdk:DataGridTemplateColumn.CellTemplate>
我正在照顧顯示或隱藏的和正常工作的值顯示或隱藏文本或組合框,但問題是當我使文本框可見時,所有行中的所有文本框都可見。我想要的僅適用於組合框selecteditem已更改的行。我希望我很清楚,否則請讓我知道添加更多信息。謝謝
謝謝Wdavo。你是絕對正確的我的虛擬機代碼開始變得非常大(近2000行代碼)。這個網格實際上是RowDetailTemplate的一部分。我將在幾個文件和VM類中分離我的代碼。再次感謝 –