저는 C#, MVVM, WPF 및 Resharper를 사용합니다. Resharper가 OnPropertyChange 집합 멤버가 비공개 일 수 있다고 말합니다.
하면 다음과 같은 코드를 사용하는 경우 : 설정 접근은 비공개 :public bool CombiBanksSelected
{
get { return _selectedBanksType == ESelectedBanksType.CombiBanks; }
set
{
나는 ReSharper에서의 경고를 얻을.
set 메서드를 private로 설정하면 InvalidOperationException이 발생합니다. TwoWay 또는 OneWayToSource 바인딩은 ''PcgTools.ViewModels.PcgViewModel ''형식의 읽기 전용 속성 ''CombiBanksSelected ''에서 작동하지 않습니다.
public bool CombiBanksSelected
{
get { return _selectedBanksType == ESelectedBanksType.CombiBanks; }
// ReSharper disable MemberCanBePrivate.Global
set
// ReSharper restore MemberCanBePrivate.Global
{
을하지만이 좋은 느낌 좋은 찾고되지되지 않습니다
물론 나는 추가하여 억제 할 수 있습니다. 이 문제에 대한 더 나은 대안이나 해결책이 있습니까?
답변에 따르면 XAML 코드를 변경해야합니다. 광산은 다음과 같습니다
<UserControl x:Class="PcgTools.PcgWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:ViewModels="clr-namespace:PcgTools.ViewModels" Height="Auto" Width="Auto"
Loaded="Window_Loaded">
<Grid>
...
<RadioButton Content="_Programs" Height="16" HorizontalAlignment="Left" Margin="12,12,0,0" Name="radioButtonPrograms" VerticalAlignment="Top"
IsChecked="{Binding Path=ProgramBanksSelected}" IsEnabled="{Binding Path=ProgramsEnabled}"/>
<RadioButton Content="_Combis" Height="16" HorizontalAlignment="Left" Margin="85,12,0,0" Name="radioButtonCombis" VerticalAlignment="Top"
IsChecked="{Binding Path=CombiBanksSelected}" IsEnabled="{Binding Path=CombisEnabled}"/>
내가 모두 (등)에 대한 ReSharper에서 문제 (위의 코드에 ProgramBanksSelected 및 CombiBanksSelected)의 IsChecked에 바인더 제본 특성을 가지고있다.
대답은 내가 DataTemplate을 사용해야한다는 것을 보여 주지만, MVARCH light의 Locator를 사용하지 않고서도 정확히 정확히 알 수는 없습니다.
데이터 컨텍스트/템플릿은 어떻게 사용해야합니까?
음, 아마도 ReSharper에서이 경우 단지 잘못? – Vlad
네,하지만 약 20 개 위치에있는 모든 경우에 발생합니다. 그리고 모든 해제 비고를 추가하여 코드를 망칠 필요가 없습니다. –
@MichelKeijzers : 그 속성 인'CombiBlankSelected'는'readonly'처럼 실제로 사용됩니다. 그렇지 않습니까? – Tigran