ユーザー コントロールの個別の繰り返しインスタンスを表示するために、WPF タブ コントロールを使用しています。つまり、Item1 の設定には Tab1、Item2 の設定には Tab2 などです。
ラジオ ボタン グループ名がタブ間で共有されているようです。何が起こっている?
簡単な例:
ウィンドウにはタブが含まれています。各タブには、ユーザー コントロールが含まれています。
<Window x:Class="WpfApplication1.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:lib="clr-namespace:WpfApplication1"
Title="Window1" Height="300" Width="300">
<Grid>
<TabControl Margin="0,0,0,100" Name="tabControl1">
<TabItem Header="tabItem1" Name="tabItem1">
<lib:UserControl1 x:Name="userControlInTab1" />
</TabItem>
<TabItem Header="tabItem2" Name="tabItem2">
<lib:UserControl1 x:Name="userControlInTab2" />
</TabItem>
</TabControl>
</Grid>
ユーザー コントロールは、グループ内の 2 つのラジオボタンです。
<UserControl x:Class="WpfApplication1.UserControl1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Height="50" Width="100">
<StackPanel>
<RadioButton GroupName="Group1" Name="radiobutton1" Content="option1" IsChecked="True" />
<RadioButton GroupName="Group1" Name="radiobutton2" Content="option2" />
</StackPanel>
このアプリを実行すると、起動時に常にチェックされるようにユーザーコントロールが定義されているにもかかわらず、2 番目のタブの radiobutton1 のみがチェックされていることがわかります。
さらに、ラジオボタンをコードビハインドでチェック済みとして設定すると、他のタブのすべてのラジオボタンがオフになっているようです!
マウスの制御下では問題なく動作するようです (つまり、タブは独立しています)。
最後に、ユーザーコントロールは個別のインスタンス化のようです。たとえば、ユーザーコントロールのスライダーでこれを試してみましたが、タブ間で独立して動作します。彼らがすべきように。
これについて誰か助けてくれてありがとう。私は無駄に広く検索しました。確かに、この問題を抱えているのは私だけではありません。私はVS2008を使用しています。